home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / communic / twntlkdm.zip / TWINDOC.PRE < prev    next >
Text File  |  1990-05-23  |  134KB  |  4,158 lines

  1.  
  2.  
  3.  
  4.                      TWinTalk WINDOWS USER'S GUIDE
  5.  
  6.                               Version 2.0
  7.  
  8.  
  9. ╔═╦═╗  ╗   ╔  ╔═╦═╗  ╔╗  ╔  ╔═╦═╗  ╔═══╗  ╗      ╗  ╔═       ╔═══╗    ╔═══╗
  10. ╚ ║ ╝  ║ ║ ║    ║    ║║  ║  ╚ ║ ╝  ╠═══╣  ║      ╠══╩╗       ╔═══╝    ║   ║
  11.   ║    ║ ║ ║    ║    ║║  ║    ║    ║   ║  ║      ║   ║       ║     ╔╗ ║   ║
  12.   ╩    ╚═╩═╝  ╚═╩═╝  ╝╚══╝    ╩    ╝   ╚  ╩═══╝  ╝   ╚       ╚═══╝ ╚╝ ╚═══╝
  13.  
  14.  
  15.        (Preliminary release for TWinTalk 2.0 - USA Demo version)
  16.  
  17.                   Asynchronous Communications Software
  18.               for IBM (R) personal computers and compatibles
  19.  
  20.  
  21.  
  22.  
  23.                       J.M. COHEN & O. PICCIOTTO
  24.  
  25.  
  26.  
  27.                     ENGLISH Version Distributed by:
  28.  
  29.                         TWinTalk International
  30.  
  31.                             P.O. Box 452
  32.  
  33.                         New Hartford, CT 06057
  34.  
  35.                         voice: 1-203-379-7727
  36.                  data : 1-203-738-0306 or 738-1046  8-N-1
  37.  
  38.  
  39.  
  40. ========================================================================
  41.  
  42.  
  43.  
  44.                                 COPYRIGHT NOTICE
  45.  
  46.  
  47.            TWinTalk Copyright (c) 1987, 1988, and 1989 by
  48.  
  49.                     J.M. COHEN & O. PICCIOTTO
  50.  
  51.       This document is Copyright (c) 1989 by TWinTalk International
  52.  
  53.  
  54.  
  55.  
  56.       No parts of TWinTalk or this document may be copied in part or in
  57.       whole, except as provided in the License in the following pages.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                    Disclaimer
  64.  
  65.        TWinTalk International hereby disclaims all warranties relating
  66.        to this software, whether express or implied, including without
  67.        limitation any implied warranties of merchantability or fitness
  68.        for a particular purpose.  TWinTalk International will not be
  69.        liable for any special, incidental, consequential, indirect or
  70.        similar damages due to loss of data or any other reason, even if
  71.        TWinTalk International or an agent of TWinTalk International has
  72.        been advised of the possibility of such damages.  In no event
  73.        shall TWinTalk International's liability for any damages ever
  74.        exceed the price paid for the license to use software, regardless
  75.        of the form of the claim.  The person using the software bears
  76.        all risk as to the quality and performance of the software.
  77.  
  78.  
  79.  
  80.  
  81.                                    Trademarks
  82.  
  83.  
  84.       TWinTalk is a trademark of J.M. Cohen and O. Picciotto
  85.  
  86.       Many product names found throughout this manual are trademarks of
  87.       various companies.
  88.  
  89.  
  90.  
  91.  
  92.  
  93.                                     LICENSE
  94.  
  95.  
  96.       TWinTalk Copyright (c) 1987, 1988, and 1989 by J.M. COHEN & O. PICCIOTTO
  97.  
  98.  
  99.       TWinTalk is not, nor has ever been, public domain or free software.
  100.  
  101.       TWinTalk is distributed only as a commercial product.  This BBS
  102.       DEMO version is available to try out the product.  Non- registered
  103.       users of TWinTalk are granted a limited license to use the
  104.       TWinTalk DEMO version, of which this is a copy, for a trial
  105.       period, in order to determine if it suits their needs.  All
  106.       functions of the commercial program are fully implemented.
  107.       However, you are limited to only 10 minutes of on-line connect
  108.       time for each session.  Any other use of TWinTalk or use past this
  109.       period requires registration.
  110.  
  111.  
  112.       A registered copy of TWinTalk must be treated like a book, in that the
  113.       same registered copy of TWinTalk may not be used in more than one com-
  114.       puter at the same time.
  115.  
  116.       All users are granted a limited license to copy this TWinTalk DEMO
  117.       only for the purpose of allowing others to try it, subject to the
  118.       above restrictions as well as these:
  119.  
  120.            TWinTalk must be distributed in absolutely unmodified form, in-
  121.            cluding ALL program, documentation, and other files.
  122.  
  123.            TWinTalk may not be included with any other product for any reason
  124.            whatsoever without a license from TWinTalk International.
  125.  
  126.            No charge or payment may be levied or accepted for TWinTalk.
  127.  
  128.       Bulletin Board system operators may post TWinTalk on their BBS for
  129.       downloading by their users without written permission only if the
  130.       above conditions are met, and only if no special fee is necessary to
  131.       access the TWinTalk files (a general fee to access the BBS is ok).
  132.  
  133.       Distributors of User Supported and Public Domain software MUST ob-
  134.       tain written permission before distributing TWinTalk and
  135.       must follow the above conditions. Permission is almost always
  136.       granted; this requirement is necessary to ensure protection for our-
  137.       selves and TWinTalk users from unscrupulous individuals.
  138.  
  139. ========================================================================
  140.  
  141. Table of Contents
  142.  
  143.  
  144. Chapter 1 : INTRODUCTION
  145.  
  146. 1.1 Welcome
  147. 1.2 Concerning MS-Windows
  148. 1.3 The TWinTalk WINDOWS package
  149. 1.4 Required Configuration
  150.  
  151.  
  152. Chapter 2: INSTALLATION
  153.  
  154. 2.1 Installation of Windows
  155. 2.2 Installation of TWinTalk WINDOWS
  156.  
  157.  
  158. Chapter 3 : User Orientation
  159.  
  160. 3.1 Begin the session.
  161. 3.2 Creating a new phonebook entry.
  162. 3.3 Dialing from the phonebook.
  163. 3.4 The Keyboard option
  164. 3.5 The Call Log.
  165. 3.6 Using the electronic phonebook
  166. 3.7 The COLOR option
  167. 3.8 The Copy command
  168. 3.9 Ending a session
  169.  
  170.  
  171. Chapter 4: A Test Drive
  172.  
  173.  
  174. 4.1 Reading a recorded file
  175. 4.2 Recording a session.
  176. 4.3 Printing the screen.
  177. 4.4 Using the scrapbook
  178. 4.5 Using the list of entrys.
  179. 4.6 The Dial command
  180. 4.7 Ending a communication
  181. 4.8 Working with a direct connection
  182. 4.9 The WINDOWS Utilities
  183. 4.10 Configuring your terminal.
  184. 4.11 File Transfer Protocols.
  185.  
  186.         4.12.1 Description of the Protocols
  187.         4.12.2 Transfering a file
  188.         4.12.3 KERMIT Protocol
  189.         4.12.4 YMODEM and YMODEM BATCH Protocols.
  190.  
  191. 4.13 Script Commands
  192.  
  193.  
  194.  
  195. Chapter 5: Menu and Command Summary
  196.  
  197.  
  198. 5.1 The File menu
  199. 5.2 The EDIT menu
  200. 5.3 The COMMANDS menu
  201. 5.4 The OPTIONS menu
  202. 5.5 The TERMINAL menu
  203. 5.6 The PROGRAM menu
  204. 5.7 The DEBUG menu
  205. 5.8 The command line parameters
  206. 5.9 Use of COM3 and COM4.
  207.  
  208.  
  209.  
  210. Chapter 6: The Script Language
  211.  
  212. 6.1 Preliminaries
  213.  
  214.         6.1.1 The Numbers
  215.         6.1.2 The Identifiers
  216.         6.1.3 Constant Strings
  217.         6.1.4 Comments
  218.  
  219. 6.2 Script Programs
  220.  
  221.         6.2.1 Defining constants
  222.         6.2.2 Definition of types
  223.         6.2.3 Declaration of Variables
  224.         6.2.4 Declaration of procedures and functions
  225.         6.2.5 Instructions
  226.         6.2.6 Range of a declaration
  227.         6.2.7 The Supervisor and User Modes
  228. 6.3 Data types
  229.  
  230.         6.3.1 Standard Scalar Types
  231.         6.3.2 The Interval type ('..')
  232.         6.3.3 The Array type (Tables)
  233.         6.3.4 The Record(Structured) type
  234.         6.3.5 Type Compatibility
  235.         6.3.6 Assignment Compatibility
  236.  
  237. 6.4 Instructions
  238.  
  239.         6.4.1 Assignment Instructions (':=')
  240.         6.4.2 Instruction Block
  241.         6.4.3 Iterative instructions
  242.         6.4.4 Conditional Instructions
  243.  
  244. 6.5 Procedures and Instructions
  245.  
  246.         6.5.1 Procedures
  247.         6.5.2 Functions
  248.  
  249. 6.6 Input Output
  250.  
  251.         6.6.1 Keyboard Input (Read)
  252.         6.6.2 Screen Output (Write)
  253.  
  254. 6.7 Procedures
  255.  
  256. 6.8 Functions.
  257.  
  258. 6.9 Constants
  259.  
  260. 6.10 Compilation Error Messages
  261.  
  262. 6.11 Interpreter Error Messages
  263.  
  264.  
  265. Appendix: TWinTalk WINDOWS Keyboard Equivalents.
  266.  
  267.  
  268. ========================================================================
  269. ========================================================================
  270.  
  271. Page   1
  272.  
  273. Chapter 1 : INTRODUCTION
  274.  
  275. 1.1 Welcome
  276.  
  277. TWinTalk WINDOWS is a program for asynchronous communication that runs in
  278. the MS-Windows environment.
  279.  
  280. TWinTalk WINDOWS offers a multitude of functions, in an effort to provide the
  281. best available Windows communication program. TWinTalk WINDOWS uses all the
  282. power of MS-Windows graphics interface, to allow the user to quickly and
  283. easily learn and use our product.
  284.  
  285. 1.2 Concerning MS-Windows
  286.  
  287. Even though this guide tries to give you the most complete help possible
  288. in the use of TWinTalk WINDOWS, we will assume that you are familiar with
  289. MS-Windows. If this is not the case, refer when necessary to the
  290. "MS-Windows User's Guide" that you received upon the purchase of that
  291. software.
  292.  
  293.  
  294. Page   2
  295.  
  296. 1.3 The TWinTalk WINDOWS package
  297.  
  298. This package is composed of the following elements:
  299.  
  300. *The TWinTalk WINDOWS diskettes (readable by either 360Kbyte or 1.2Mbyte
  301. drives).
  302. *The TWinTalk WINDOWS USER'S GUIDE.
  303.  
  304. 1.4 Required Configuration
  305.  
  306. To use TWinTalk WINDOWS you must have the following elements:
  307.  
  308. *       a computer operating under the MS-DOS system with MS-Windows version
  309.         2.03 or above installed.
  310.  
  311. *       at least 512kbyte of memory (we recommend 640kbyte in order to
  312.         execute several applications simultaneously).
  313.  
  314. *       a graphics monitor control card (we recommand a resolution
  315.         better than 640 x 200, such as the EGA).
  316.  
  317. *       a color or black and white graphics monitor.
  318.  
  319. *       MS-DOS 3.0 or above.
  320.  
  321. *       a means of communication, for example:
  322.         -an external modem ( Hayes compatible ).
  323.         -an internal card (Hayes compatible).
  324.         -a RS-232 cable connected to another computer.
  325.         -a 'connection' via 'COMBIOS' or "NETBIOS"
  326.  
  327.  
  328. Page   3
  329.  
  330. To take full advantage of TWinTalk WINDOWS, we also recommend that you have:
  331.  
  332. *       a mouse or other means of pointing.
  333.  
  334. *       a hard disk.
  335.  
  336. *       a graphics printer.
  337.  
  338.  
  339. Page   4
  340.  
  341. Chapter 2: INSTALLATION
  342.  
  343.  
  344. 2.1 Installation of Windows
  345.  
  346. To use TWinTalk WINDOWS you should have installed Windows on your computer.
  347. Begin this procedure by referring to the Windows User's Guide.
  348.  
  349.  
  350. 2.2 Installation of TWinTalk WINDOWS
  351.  
  352. The installation program (Install.exe) serves to transfer TWinTalk WINDOWS and
  353. its work files onto your hard disk. Before beginning, check that you
  354. have at least 600kbyte of free space on your hard disk.
  355.  
  356. At the DOS prompt:
  357.  
  358. -       place the TWinTalk WINDOWS Application diskette in drive A, then type
  359.         A:INSTALL <CR>
  360.  
  361. -       follow the instructions displayed on the screen.
  362.  
  363. Once installed, TWinTalk WINDOWS is ready to go.
  364.  
  365. If you are already somewhat familiar with communications between
  366. computers, you may skip to Chapter 3 "User Orientation".
  367.  
  368.  
  369. Page   5
  370.  
  371. In the rest of this guide, we will assume that you are equipped with
  372. a mouse. If this is not the case, use the keyboard. You will find the
  373. standard keyboard equivalents in the "Windows User's Guide" (Chapter 2)
  374. and those specific to TWinTalk WINDOWS in Appendix B of this guide.
  375.  
  376.  
  377. Page   6
  378.  
  379. Chapter 3 : User Orientation
  380.  
  381.  
  382. This chapter will guide your first steps with TWinTalk WINDOWS.
  383.  
  384.  
  385. In the present chapter you will learn:
  386.  
  387.         *       to start a work session with TWinTalk WINDOWS.
  388.         *       to create or modify a phonebook entry.
  389.         *       to configure your computer with the system to which
  390.                 you will connect.
  391.         *       to establish communication between you and the site.
  392.         *       to use your computer as a terminal.
  393.         *       to use the Keyboard, Clock, and Color options.
  394.         *       to save the communication parameters.
  395.         *       to end a work session.
  396.  
  397.  
  398. Page   7
  399.  
  400. 3.1 Begin the session.
  401.  
  402.         Open the TWinTalk window after having run Windows ( go to the
  403. directory where you have installed TWinTalk and type WIN); you obtain
  404. the MS-DOS Executive display:
  405.  
  406.                         (GRAPHIC)
  407.  
  408.         1.      Select the file name "TWINTALK.EXE"
  409.  
  410.         2.      Click the button on the mouse twice in rapid succession
  411.                 to run TWinTalk.
  412.  
  413. The screen displays TWinTalk's work window.
  414.  
  415.                         (GRAPHIC)
  416.  
  417.  
  418. Page   8
  419.  
  420. 3.2 Creating a new phonebook entry.
  421.  
  422. To avoid tedious configuration setup operations for each new connection,
  423. TWinTalk lets you manage a list of the entries you have to connect
  424. to. Thus, for each entry, you need only specify the configuration one
  425. time. As an example we are going to add the HH Info-Net BBS to our phonebook.
  426. book to our list.
  427.  
  428. -1. To access the list, choose the entry DIALING LIST in the COMMAND menu
  429.  
  430.                         (GRAPHIC)
  431.  
  432. -2. In the text area labelled FILE, type the name of the file in which
  433. you will save the configuration that we are going to describe
  434. (Hounds.cfg)
  435.  
  436. -3. In the text area labelled NUMBER, type the phone number that you
  437. must dial (possibly preceeded by
  438. an access prefix if you need one to dial out of a local switchboard, for
  439. example( "9,").
  440.  
  441.  
  442. Page   9
  443.  
  444. -4.
  445.  
  446. -5. in the Emulations list, choose ANSI
  447.  
  448. -6. in the Protocols list, choose NONE
  449.  
  450. -7. Click on CAPTURE
  451.  
  452. You will then see the configuration dialog window appear containing the
  453. physical communication parameters (you may refer to Appendix A for a
  454. detailed explanation).
  455.  
  456.                         (GRAPHIC)
  457.  
  458. -8. On the Port line, click COM1 if your communication equipment is on
  459. the asynchronous port #1, or COM2 if it is on Port #2. Refer to the
  460. documentation of your modem or communication card to find out for which
  461. port it is configured.
  462.  
  463. -9.  on the WORD SIZE line, click 8
  464.  
  465. -10. On the PARITY line, click NONE
  466.  
  467.  
  468. Page  10
  469.  
  470. -11. Flow CONTROL: None
  471.  
  472. -12. in the PERIPHERAL list area select the name of your communication
  473. equipment. If the name of the equipment you have is not on the list,
  474. refer to Appendix C: "Modem equivalents"
  475.  
  476. -13. in the SPEED list area, choose 1200
  477.  
  478. -14. click CONFIRM
  479.  
  480. The dialing list window then reappears.
  481.  
  482. You have created a new entry in your list. Henceforth, to consult
  483. the electronic phonebook you will not need to concern yourself with
  484. adjusting all of these parameters.
  485.  
  486. -15. Click now on CONFIRM.
  487.  
  488.  
  489. Page  11
  490.  
  491. 3.3 Dialing from the phonebook.
  492.  
  493.  
  494. Call the command DIAL from the COMMAND menu. TWinTalk will dial the
  495. telephone number.
  496.  
  497. You are now back in TWinTalk's  main window, and you see displayed the
  498. phonebook's reception page.
  499.  
  500.  
  501. 3.4 The Keyboard option
  502.  
  503.  
  504. Your computer is now emulating an ANSI terminal. To adapt your keyboard to
  505. the VT102 terminal, TWinTalk offers this option to give you these features.
  506.  
  507. -1. Choose KEYBOARD from the OPTIONS menu.
  508.  
  509.  
  510.                         (GRAPHIC)
  511.  
  512. Now, to use a key unique to a VT102 terminal, you need only click on its name
  513. on the screen.
  514.  
  515. All the VT102 keys can be obtained by their keyboard equivalent; to
  516. find out how to do this refer to Appendix B (keyboard equivalents).
  517.  
  518.  
  519. Page  12
  520.  
  521. 3.5 The Call Log.
  522.  
  523.  
  524.  
  525. To keep constant track of the time since you have made the connection
  526. and the cost of the communication, use CLOCK ( chosen from the OPTIONS
  527. menu).
  528.  
  529. TWinTalk asks you for the price of each billing unit and the duration of
  530. a unit.
  531.  
  532.                         (GRAPHIC)
  533.  
  534. Click on OK
  535.  
  536. You will then see the clock appear.
  537.  
  538. It will only run while you are connected, which will let you know the
  539. time and the price of your communication.
  540.  
  541.                         (GRAPHIC)
  542.  
  543.  
  544. 3.6 Using the electronic phonebook
  545.  
  546.  
  547.                  (to be added)
  548.  
  549. Page  13
  550.  
  551.  
  552.                         (GRAPHIC)
  553.  
  554. 3.7 The COLOR option
  555.  
  556.  
  557.                   (to be added) ********
  558.  
  559.  
  560. Page  14
  561.  
  562. The COPY command
  563.  
  564.  
  565. Like all Windows applications, TWinTalk has an EDIT menu, which
  566. contains the COPY option.
  567.  
  568. This option permits you to copy all or part of the screen to the
  569. scrapbook. We shall illustrate the copying of two types of information,
  570. text and graphic.
  571.  
  572.  
  573. The TEXT option
  574.  
  575.         If you select this option from the EDIT menu, when you ask
  576. TWinTalk to copy, it will transfer only the alphanumeric characters to
  577. the scrapbook, without taking the graphics. These characters can be reused by
  578. any other Windows software and can be edited just like any other text.
  579.  
  580.  
  581. The GRAPHIC option
  582.  
  583.         If you choose GRAPHIC in the EDIT menu, TWinTalk will copy to
  584. the scrapbook everything which is on the screen (graphics included) as a
  585. drawing.
  586.  
  587.  
  588. Page  15
  589.  
  590. Partial Copy
  591.  
  592.         If you ask for COPY without a prior selection, TWinTalk copies
  593. the whole screen to the scrapbook.
  594.  
  595.         In order to copy only a part of the screen, bring the pointer of
  596. the mouse to the upper left of the area that you want to select, press
  597. the left button on the mouse, and kep it pressed down while you drag
  598. the pointer to the lower right corner of the desired area. When you let
  599. go of the button, the area is selected.
  600.  
  601. If you don't have a mouse.
  602.  
  603.         - to move the pointer, press simultaneously on the ALT key and
  604. on one of the movement arrows.
  605.  
  606.         - to make the selection, you must also press the space bar while
  607. you are framing the area that you want to copy, and release it to end
  608. the selection. The space bar replaces the button on the mouse.
  609.  
  610. After having selected an area on the screen ( which will appear framed
  611. by a white line), choose COPY from the EDIT menu to copy the area in the
  612. scrapbook.
  613.  
  614. You may now use the saved screen information in other applications
  615. functioning under Windows.
  616.  
  617.  
  618. Page  16
  619.  
  620. 3.9 Ending a session
  621.  
  622.  
  623. To end your session, as for any Windows application, choose
  624. EXIT from the system menu. At this moment the window closes
  625. itself. TWinTalk will ask you if it should record the current
  626. configuration in the default configuration file. Answer YES so that
  627. this configuration can be chosen automatically at the time of the
  628. following communiction.
  629.  
  630. Note
  631.         the system menu is accessible by clicking in the box at the left
  632.         of the title bar.
  633.  
  634.  
  635. Page  17
  636.  
  637. Chapter 4: A Test Drive
  638.  
  639.  
  640. In this chapter you will learn the basic functions of TWinTalk. These
  641. are those that you will most often use.
  642.  
  643. If you are looking for the description of a command that is not
  644. discussed in this chapter, refer to the following chapter "Menu and Command
  645. Summary."
  646.  
  647.  
  648. Page  18
  649.  
  650. 4.1 Reading a recorded file
  651.  
  652. The "READ" command of the "FILE" menu allows you to review
  653. or "play back" a file that you have previously recorded. When you
  654. call this command, TWinTalk displays the following dialog window:
  655.  
  656.  
  657.                           (GRAPHIC)
  658.  
  659.  
  660. In the text area you see "*.TTY", which implies that the list area
  661. located underneath is displaying all the files whose name ends with
  662. the extension ".TTY".
  663. In the other list you see all the directories contained within the
  664. current directory and the disk drives available in the system.
  665.  
  666. TWinTalk uses the following standard extensions for the names of the
  667. recorded files:
  668.  
  669.     .TTY        for all normal terminals
  670.     .MNT        for recorded Minitel files
  671.     .PRS        for recorded Prestel files
  672.  
  673. Enter in the text area the name of the file that you would like to
  674. read or else select it directly from the list. To open the file, press
  675. the "ENTER" key, or double
  676. click directly on the file name in which you are interested.
  677.  
  678.  
  679. Page 19
  680.  
  681. This procedure causes the READ CONTROL window to appear:
  682.  
  683.  
  684.                          (GRAPHIC)
  685.  
  686. You can move either forward or backwards in the file:
  687.  
  688.     Either by moving the box laterally in the horizontal bar with the
  689.     help of the mouse, or by giving a page number ion the text area.
  690.  
  691. At any moment you can interrupt the display by choosing the "PAUSE"
  692. option. To restart the display click again in the same area.
  693.  
  694. To completely stop reading the file, close the READ CONTROL window.
  695.  
  696.  
  697.  
  698.  
  699.  
  700. Page  20
  701.  
  702. 4.3 Recording a session.
  703.  
  704. The "CAPTURE" command in the  "FILE" menu lets you record at any
  705. moment everything which the screen displays in order to review it later.
  706.  
  707. Before or after you have connected to another computer, when you choose
  708. the CAPTURE command from the FILE menu, you will see a dialog box appear
  709. that will let you specify the filename where TWinTalk should record the
  710. screen images.
  711.  
  712.  
  713.                         (GRAPHIC)
  714.  
  715. Click on "CAPTURE" when you have specified the name of the file in which
  716. you shall capture all that happens on the screen. By convention, the
  717. names of the files recorded have the following extensions:
  718.  
  719.         .TTY for all normal sessions
  720.         .MNT for Videotex sessions
  721.         .PRS for Prestel sessions
  722.  
  723. TWinTalk automatically offers you the extension by reason of the
  724. emulation mode you are in.
  725.  
  726.  
  727. How to know if you are actually recording?
  728.  
  729. During the recording, the CAPTURE command of the FILE menu is checked.
  730. Moreover, if you have checked the STATUS option in the OPTIONS menu, you
  731. will see the 'RECD' indicator displayed.
  732.  
  733.  
  734. Page  21
  735.  
  736. How to stop recording?
  737.  
  738. You need only again call the "CAPTURE" command. The checkmark disappears.
  739. The recording is ended.
  740.  
  741.  
  742. Page  22
  743.  
  744. 4.4 Printing the screen
  745.  
  746. The PRINT command in the FILE menu
  747.  
  748.         This command permits you to print the entire contents of
  749. TWinTalk's screen window (even if you only see a part of it). Calling
  750. this command makes the printing dialog box appear:
  751.  
  752.                         (GRAPHIC)
  753.  
  754. The Text option allows you to print only the screen's alphanumeric
  755. characters, excluding all graphics. This option's advantage is its
  756. speed.
  757.  
  758. The graphic option allows you to print everything which is on the
  759. screen, including drawings. The resolution of the graphics is always
  760. automatically adjusted to the type of printer selected by the use of
  761. the program "CONTROL.EXE". In this case the printout will take longer,
  762. especially Laser printouts.
  763.  
  764. The INVERSE option (usable only for graphics) allows you to print in
  765. black that which appears in white on the screen, and vice-versa. This
  766. option's purpose is to save the print ribbon or, for laser printers,
  767. their toner.
  768.  
  769.  
  770. Page  23
  771.  
  772. Approving the printout (Click on "CONFIRM") causes the appearance of the
  773. window:
  774.  
  775.                                 (GRAPHIC)
  776.  
  777. You can thus see the number of the page being processed. In the case of
  778. laser printers in graphics mode, a page number can appear several times
  779. in succession.
  780.  
  781.  
  782. Page  24
  783.  
  784. 4.5 Using the scrapbook
  785.  
  786. The commands: COPY, PASTE, TEXT, and GRAPHICS of the EDIT menu.
  787.  
  788.  
  789. TWinTalk allows you to exchange data with all other Windows applications
  790. using the scrapbook as an intermediary.
  791.  
  792. TWinTalk can exchange two types of information:
  793.  
  794.         -text
  795.         -a color or black and white graphic bitmap
  796.  
  797. To choose between these two possibilities, check respectively Text or
  798. Image in the EDIT menu. When copying graphics, the status of the COLOR
  799. option in the OPTIONS menu determines if a color or black and white
  800. bitmap is exchanged.
  801.  
  802. Selection of the information to be copied is accomplished with the mouse
  803. by pointing at the upper left corner of the area to be selected,
  804. depressing the left button of the mouse, and, while keping the button
  805. depressed, moving the mouse toward the lower right corner of the area
  806. and finally releasing the button.
  807.  
  808. Note: if you don't have a mouse
  809.  
  810.         -to move the cursor, simultaneously press the ALT key and one of
  811.         the movement arrows.
  812.  
  813.         -in making the selection the space bar replaces the button on
  814.         the mouse; kep it depressed while you outline the area to be
  815.         copied, and release it to end the selection.
  816.  
  817.  
  818. Page  25
  819.  
  820. The COPY command puts the contents of the area you have selected in the
  821. scrapbook. If you haven't selected anything, everything on the TWinTalk
  822. window screen is placed in the scrapbook (including the checked parts).
  823.  
  824. If the scrapbook contains text, coming from TWinTalk or from any other
  825. application, the PASTE command of the EDIT menu is activated. By calling
  826. it, you send the contents of the scrapbook to the computer to which you
  827. are connected exactly as if you typed the text by hand.
  828.  
  829.  
  830. Page  26
  831.  
  832. 4.6 Using the list of sites
  833.  
  834. The DIALING LIST command of the COMMAND menu.
  835.  
  836. In chapter 3 "User Orientation" we have seen that TWinTalk
  837. uses a dialing list in order to facilitate the adjustment of the
  838. parameters to be used for a connection.
  839.  
  840. To use the list, call the DIALING LIST command from the COMMAND menu.
  841. You will see the dialing list dialog box displayed.
  842.  
  843.                         (GRAPHIC)
  844.  
  845.  
  846. Several operations can be performed at this moment:
  847.  
  848.         1-Loading a site's parameters and connecting to it
  849.         2-Loading a site's parameters without any connection
  850.         3-Dialing a telephone number without loading any dialing parameters
  851.         4-Adding a site and its parameters to the list.
  852.  
  853.  
  854. Page  27
  855.  
  856. 1-Loading dialing parameters and connection
  857.  
  858. In the dialing list (at the lower left), choose the name of the site to
  859. which you would like to connect. Double click on the name of the site of
  860. your choice:
  861.  
  862. If your modem knows how to dial a telephone number by itself (Hayes
  863. type), you will see the dialing control window appear.
  864.  
  865.                         (GRAPHIC)
  866.  
  867. You can at this moment CANCEL the connection attempt or FORCE it. The
  868. latter option establishes a logic connection to the modem even if the
  869. carrier has not been recognized. You can equally well use the slide
  870. bar to increase the waiting time of the carrier.
  871.  
  872. If the cursor reaches the left end of the slide bar, TWinTalk has not
  873. recognized the carrier : it hangs up and frees the line.
  874.  
  875. If your modem does not know how to dial, you will see the following
  876. dialog box displayed:
  877.  
  878.                         (GRAPHIC)
  879.  
  880. Pickup the handset of your telephone, dial the access number of the
  881. desired site and click the "OK" button.
  882.  
  883. When you hear a high pitched tone in the earphone, rock the switch on
  884. the modem that controls the phoneline and hang up. You are then
  885. connected to the site and can begin to work.
  886.  
  887.  
  888. Page  28
  889.  
  890. 2- Loading the parameters of a site without making a connection
  891.  
  892. In the dialing list click ONE time on the name of the desired site. You can
  893. equally well enter the name of the site in the text box labelled "FILE".
  894. This action displays the values of the NUMBER, PROCEDURE,
  895. EMULATION, and PROTOCOL parameters for the given site.
  896.  
  897. Click on CONFIRM, the dialog window closes and TWinTalk is now
  898. configured for the site but you have not been connected. The connection
  899. can be made by using the DIAL command from the COMMAND menu.
  900.  
  901.  
  902. 3- Dial a number without loading any parameters
  903.  
  904. This operation facilitates the dialing of a telephone number if it
  905. hasn't been recorded as one of the dialing parameters.
  906.  
  907. -Fill in the "NUMBER" field with the number to be dialed. If you have a
  908. telephone switchboard, enter the external access digit, then a comma,
  909. and finally the desired number. For example,
  910.  
  911.         0,2037380306            0 being the digit for outside access
  912.  
  913. -Click on DIAL. The dialog window disappears and a connection is
  914. attempted using the current parameters. The control of the
  915. connection is accomplished as described above.
  916.  
  917.  
  918. Page  29
  919.  
  920. 4- Add or modify a site and its parameters in the list
  921.  
  922.  
  923. To add a site:
  924.  
  925. 1 -   Enter in the "FILE" field the name of the site that you are
  926.       going to add. This name will have by default the extension '.CFG'
  927.  
  928. 2 -   Enter in the "NUMBER" field the telephone number to dial to
  929.       establish a connection with the site. The number is entered
  930.       as explained above.
  931.  
  932. 3 -   Check the "BELL" box if you are connecting to a server that
  933.       uses American standards, click "Touch tone"
  934.       if your telephone system supports that mode, and check
  935.       "take the line" if you want the modem to establish the
  936.       connection after dialing (this box will be checked in the
  937.       majority of cases).
  938.  
  939. 4 -   Enter in the "Procedure" field the procedure which should be
  940.       followed after the dialing parameters are loaded. If there isn't
  941.       any procedure which should
  942.       be run, leave the field empty. The procedure file will be
  943.       searched for by default in the configuration directory. If you
  944.       prefer you may specify another directory explicitly.
  945.  
  946. 5 -   Select from the emulation list the entry appropriate to the site.
  947.       Refer to the section "Configuring your terminal" for
  948.       more information about emulations.
  949.  
  950. 6 -   Select from the file transfer list the entry appropriate to the
  951.       site. Refer to the section "File transfer protocols" for more
  952.       information about protocols.
  953.  
  954. 7 -   Click on CAPTURE. The line configuration dialog box then appears.
  955.  
  956.  
  957.  
  958.  
  959. Page 30
  960.  
  961.                           (GRAPHIC)
  962.  
  963.  
  964.  
  965.       Set up all the parameters for the communication after referring
  966.       to the section "Everything you need to know about asynchronous
  967.       communications" then click on CONFIRM : the line configuration
  968.       dialog box closes and you find the new site in the dialing list.
  969.  
  970. 8 -   At this point you can load the parameters of the new site and
  971.       connect yourself as explained above.
  972.  
  973.  
  974. Modifying the parameters of a site:
  975.  
  976. 1 -   Select the desired site by clicking ONE time on its name in the
  977.       dialing list.
  978.  
  979. 2 -   Modify the field entries, the emulation types and the file
  980.       transfer protocols, then click on CAPTURE to open the line
  981.       configuration dialog box.
  982.  
  983. 3 -   Modify the line configuration via its dialog box and click
  984.       CONFIRM.
  985.  
  986. 4 -   At this point you can load the parameters of the new site and
  987.       connect yourself as explained above.
  988.  
  989.  
  990. Page  31
  991.  
  992. 4.7 The Dial command
  993.  
  994. This command allows you to redial the last telephone number called
  995. without having to use the dialing list.
  996.  
  997. It is very handy when the number is often busy and you must redial
  998. several times.
  999.  
  1000.  
  1001. 4.8 Ending a communication
  1002.  
  1003. The DISCONNECT command from the COMMAND menu.
  1004.  
  1005.         When you have finished working with the remote site, to end the
  1006. communication, activate the DISCONNECT command from the COMMAND menu.
  1007. You will then hang up and free the telephone line.
  1008.  
  1009.  
  1010. Page  32
  1011.  
  1012. 4.9 Working with a direct connection
  1013.  
  1014.  
  1015. The TALK TO MODEM and DISCONNECT command from the COMMAND menu.
  1016.  
  1017. When you would like to join two computers located in the same
  1018. building, if they are sufficiently close together, you need not use a
  1019. modem. You need only connect them by cable. This will be the
  1020. configuration most often used to connect PC's to mini-computers.
  1021.  
  1022.         Thus there isn't any telephone number to dial.
  1023.  
  1024. To connect to the other computer, first choose the site from the
  1025. list (see the section 'using the dialing list'), and click the
  1026. CONFIRM button.
  1027.  
  1028. Thus, in order to be able to work with the other computer, you need only
  1029. use the TALK TO MODEM command from the menu.
  1030.  
  1031. At the end of the session, use the DISCONNECT command to get back to
  1032. local mode.
  1033.  
  1034.  
  1035. Page  33
  1036.  
  1037. 4.10 The Windows Utilities
  1038.  
  1039. The KEYBOARD, COLOR, ARRANGE, and CLOCK commands from the OPTION menu.
  1040.  
  1041. The KEYBOARD command
  1042.  
  1043. Some terminals have special keys which don't exist on PC keyboards. For
  1044. example,  the VT-1xx terminals use the PF1, PF2, PF3, and PF4.
  1045.  
  1046. To add these special keys to your own keyboard, use the KEYBOARD command
  1047. from the OPTIONS menu. You will see displayed a keyboard window showing
  1048. the special keys of the terminal you are working with.
  1049.  
  1050. For the VT102 and VT52 emulations:
  1051.  
  1052.                                 (GRAPHIC)
  1053.  
  1054.  
  1055. Page  34
  1056.  
  1057.  
  1058.  
  1059.                                 (GRAPHIC)
  1060.  
  1061. To simulate a special key stroke, click it in the keyboard window.
  1062.  
  1063.  
  1064. The COLOR command
  1065.  
  1066. If your version of Windows is configured to work in color, this command
  1067. is selected by default.
  1068.  
  1069. When COLOR is selected, TWinTalk displays the text and images in
  1070. the colors transmited by the other computer; thus the text is always
  1071. well defined.
  1072.  
  1073. When COLOR is not selected, Freewat substitutes a grey pattern
  1074. for the range of colors. This lets owners of monochrome systems use
  1075. the same services designed for color monitors, but this mode alters the
  1076. readability of the text.
  1077.  
  1078. If your version of Windows is configured for a black and white monitor,
  1079. the COLOR command is de-selected by default. TWinTalk then uses a
  1080. display of patterns. When COLOR is selected, TWinTalk tries to avoid
  1081. displaying all the text in patterns of maximum contrast, so that
  1082. their visibility is improved.
  1083.  
  1084.  
  1085. Page  35
  1086.  
  1087. The CLOCK command
  1088.  
  1089. This command allows you to know the price of the communication in
  1090. progress at each moment. When you call the CLOCK command from the OPTION
  1091. menu, the following dialog box appears.
  1092.  
  1093.                         (GRAPHIC)
  1094.  
  1095. Indicate the price parameters:
  1096.  
  1097.         -price per billing unit
  1098.         -duration of the billing unit
  1099.  
  1100. Finally, click the OK button.
  1101.  
  1102. As soon as you are connected, and until you are disconnected, TWinTalk
  1103. will calculate without interruption the price of the communication by
  1104. displaying the window:
  1105.  
  1106.                         (GRAPHIC)
  1107.  
  1108. The ARRANGE command
  1109.  
  1110. Calling this command causes the Videotex display window to be refreshed
  1111. in order to have the best visibility possible. This command is only
  1112. effective for videotex emulations.
  1113.  
  1114.  
  1115. Page  36
  1116.  
  1117. 4.11 Configuring your terminal
  1118.  
  1119. The commands in the TERMINAL menu.
  1120.  
  1121. To manage the display of the terminals to which they are connected,
  1122. computers use cursor positioning sequences, the total or partial erasure
  1123. of the screen, the displacement of areas of the screen, etc...
  1124.  
  1125. The various terminal manufacturers have developed competing products
  1126. which are not mutually compatible : they don't use the same sequences
  1127. for the same action.
  1128.  
  1129. In order to permit you to use the largest number of computers possible,
  1130. TWinTalk knows how to imitate the behavior of several different
  1131. terminals. (we are refering to emulation).
  1132.  
  1133. When you connect to a computer, you must indicate what type of terminal it
  1134. should imitate so that the display on your screen is correct.
  1135.  
  1136.  
  1137. Exercise 2: Emulation Utilities
  1138.  
  1139. This exercise will permit us to learn what happens when TWinTalk
  1140. emulates a terminal which is not appropriate for the remote computer.
  1141.  
  1142. -       Open the TERMINAL menu and choose TELETYPE.
  1143.  
  1144. -       Verify that you are disconnected (if the DISCONNECT command in
  1145.         the COMMAND menu in not shaded, call it).
  1146.  
  1147. -       Put the diskette in drive A.
  1148.  
  1149. -       The the READ command from the FILE menu.
  1150.  
  1151.  
  1152. Page  37
  1153.  
  1154. -       Choose the file PHONEBOOK.MNT in drive A; click OK.
  1155.  
  1156. The screen displays an incoherent succession of characters which have
  1157. nothing to do with the greeting page of the electronic phonebook. You
  1158. now understand the need to choose a terminal adapted to the computer
  1159. with which you are working.
  1160.  
  1161. Close the file reading window and restart the exercise by choosing
  1162. Videotex instead of Teletype from the TERMINAL menu.
  1163.  
  1164. This time the display is correct.
  1165.  
  1166. In conclusion, if you happen to be receiving a screen display where the
  1167. messages are not making sense, it is perhaps the case that you haven't
  1168. chosen the corect terminal emulation.
  1169.  
  1170.  
  1171. How to know which terminal emulation to use?
  1172.  
  1173. TWinTalk offers eight different emulations that that be separated into
  1174. two groups:
  1175.  
  1176. -       the professional terminals: TTY, VT52, VT102, VT220, D2000 and
  1177.         Telecomputing.
  1178.  
  1179. -       the mass market terminals. These are Videotex and Prestel.
  1180.  
  1181. The mass market terminals are devices developed by the French
  1182. (with Videotex) or British (with Prestal) telecommunication
  1183. administrations.
  1184.  
  1185. Each time that you call up the electronic phonebook or a minitel server
  1186. on 3613, 3614, 3615, or 3616, choose the Videotex emulation. The same
  1187. types of service exist in Great Britain where it is necessary to
  1188. choose Prestal.
  1189.  
  1190.  
  1191. Page  38
  1192.  
  1193. The professional terminals are forseen for working with mini or
  1194. mainframe computers. The most widespread model is ANSI; if this
  1195. emulation does not give you a correct display, contact the system
  1196. manager of the site you are connecting to and ask which emulation you
  1197. should use.
  1198.  
  1199.  
  1200. Here is a resume of the characteristics of the terminals emulated by
  1201. TWinTalk.
  1202.  
  1203.  
  1204. Teletype
  1205.  
  1206. -       The simplest of terminals, it possesses no higher level commands
  1207.         and behaves like a line printer.
  1208.  
  1209.  
  1210. Videotex
  1211.  
  1212. -       A semi-graphics terminal using French Telecommunication
  1213.         standards. Known as well by the name Minitel.
  1214.  
  1215.  
  1216. Telecomputing
  1217.  
  1218. -       The 80 column telecomputing mode of the Minitel 1B. Recognizes
  1219.         ANSI commands. Partially VT102 compatible. TWinTalk will change
  1220.         automatically to this mode from Videotex mode if the server commands
  1221.         it.
  1222.  
  1223.  
  1224. VT52
  1225.  
  1226. -       An alphanumeric terminal created by Digital Equipment
  1227.         Corporation.
  1228.  
  1229.  
  1230. VT102
  1231.  
  1232. -       An alphanumeric terminal possessing semi-graphic characteristics
  1233.         and a large size. Created by Digital.
  1234.         Note: VT102 is very similar to ANSI terminals
  1235.  
  1236. ~~~ ADD VT220 and any other special emulations....
  1237.  
  1238. Page  39
  1239.  
  1240. ANSI
  1241.  
  1242. -       Terminal corresponding to the American National Standards
  1243.         Institute standards, partially VT102 compatible.
  1244.  
  1245.         Note: The command IBM STANDARD gives access to a set of IBM-PC
  1246.         compatible semi-graphic characteristics.
  1247.  
  1248.  
  1249. D2000
  1250.  
  1251. -       Intertechnic's alphanumeric terminal.
  1252.  
  1253.  
  1254. The IBM Standard or French Standard commands
  1255.  
  1256. For ANSI emulation the IBM Standard command allows you to tell TWinTalk
  1257. that it should use the set of characteristics specific to the IBM-PC
  1258. instead of the standard ANSI set (the set used by WINDOWS).
  1259.  
  1260. Indeed, some computers will assume that you are using an IBM type
  1261. terminal. This generally translates into a display of miniscule letters
  1262. instead of the horizontal and vertical bars used to draw outlines.
  1263.  
  1264. If you notice such a phenomenom, call the command "IBM Standard" from
  1265. the TERMINAL menu.
  1266.  
  1267. In the VT102 and VT52 emulation modes the French Standard command
  1268. informs TWinTalk that it should use a standard of French
  1269. characteristics.
  1270.  
  1271.  
  1272. Page  40
  1273.  
  1274.  
  1275.  
  1276. 4.12 File Transfer Protocols
  1277.  
  1278. TWinTalk allows you to send and recieve files to and from another computer.
  1279. Instead of displaying the information coming from the other computer on your
  1280. screen, TWinTalk saves them in a file that you may later reuse.
  1281.  
  1282.  
  1283. 4.12.1 Description of the Protocols
  1284.  
  1285. What is a transfer protocol?
  1286.  
  1287. A file transfer protocol is a set of rules and procedures which permit
  1288. two computers to exchange files while limiting the risk of transmission
  1289. error or a loss of information.
  1290.  
  1291.  
  1292. Which protocol should be used?
  1293.  
  1294. Since it is necessary that both the computers use the same protocol,
  1295. the first choice criteria is that a protocol be available on the other
  1296. computer.
  1297.  
  1298. Start, therefore, by finding out which protocols are understood by the
  1299. other computer. Keep those which are also known to TWinTalk:
  1300.  
  1301.         .PDIP
  1302.         .KERMIT
  1303.         .XMODEM
  1304.         .XMODEM 1K
  1305.         .XMODEM CRC
  1306.         .YMODEM
  1307.         .YMODEM BATCH
  1308.  
  1309. Since the primary role of a protocol is to gaurantee the integrity of
  1310. the transfer, choose the one that offers the most security (in the
  1311. above list they are classified in order of increasing security).
  1312.  
  1313. ~~~ Add this:
  1314.  
  1315. TWinTalk also may be used with up to 2 optional external protocol drivers
  1316. for use with ZMODEM, YMODEM-G, CLINK, BIMODEM, etc., by use of the
  1317. following statement in your WIN.INI file:
  1318.  
  1319.            PROT1=protocol.pif
  1320.            PROT2=protocol.pif
  1321.  
  1322.  
  1323.  
  1324. Page  41
  1325.  
  1326. Finally, consider the efficiency of the protocol (the amount of useful
  1327. information transmitted relative to the total ), and the supplementary
  1328. functions offered by the protocol. For this, consult the following list.
  1329.  
  1330.  
  1331. Protocol: None
  1332.  
  1333.         .Efficiency:                    100%
  1334.         .Mode of control:               none
  1335.         .Supplementary functions:       none
  1336.         .Size of the dataway:           7 bits for ASCII text files,
  1337.                                         8 bits for other files
  1338.         .Remarks:                       use as a last resort
  1339.  
  1340.  
  1341.  
  1342. Protocol: PDIP
  1343.  
  1344.         .Efficiency:                    40%
  1345.         .Mode of control:               by sum parity check
  1346.         .Supplementary functions:       transmit the file name
  1347.         .Size of the dataway:           7 bits for ASCII text files,
  1348.         .Remarks:                       established for the French
  1349.                                         Accounting Office
  1350.  
  1351.  
  1352.  
  1353. Protocol: KERMIT
  1354.  
  1355.         .Efficiency:                    variable, about 60%
  1356.         .Mode of control:               bit sum parity check or,
  1357.                                         optionally, by a redundant
  1358.                                         cyclical code
  1359.         .Supplementary functions:       transmit the file name,
  1360.                                         possibility of chaining
  1361.                                         transmissions, command language
  1362.                                         for the remote computer
  1363.         .Size of the dataway:           7 or 8 bits
  1364.         .Remarks:                       a classic computing standard.
  1365.                                         The passkey. Read the chapter
  1366.                                         devoted to it.
  1367.  
  1368.  
  1369. Page  42
  1370.  
  1371.  
  1372. Protocol: XMODEM
  1373.  
  1374.         .Efficiency:                    75%
  1375.         .Mode of control:               bit sum parity check
  1376.         .Supplementary functions:       none
  1377.         .Size of the dataway:           8 bits
  1378.         .Remarks:                       the most developed protocol in
  1379.                                         micro-computing
  1380.  
  1381.  
  1382.  
  1383. Protocol: XMODEM.1K
  1384.  
  1385.         .Efficiency:                    92%
  1386.         .Mode of control:               by redundant cyclical code
  1387.         .Supplementary functions:       none
  1388.         .Size of the dataway:           8 bits
  1389.         .Remarks:                       Improves the efficiency of
  1390.                                         XMODEM on a good line. Security
  1391.                                         assured by redundant cylcical
  1392.                                         code
  1393.  
  1394.  
  1395.  
  1396. Protocol: XMODEM.CRC
  1397.  
  1398.         .Efficiency:                    73%
  1399.         .Mode of control:               bit sum parity check
  1400.         .Supplementary functions:       none
  1401.         .Size of the dataway:           8 bits
  1402.         .Remarks:                       good error detection
  1403.  
  1404.  
  1405.  
  1406. Protocol: YMODEM
  1407.  
  1408.         .Efficiency:                    90%
  1409.         .Mode of control:               by redundant cyclical code
  1410.         .Supplementary functions:       transmit file name, allows
  1411.                                         you to chain transmissions
  1412.         .Size of the dataway:           8 bits
  1413.         .Remarks:                       still not well developed
  1414.  
  1415.  
  1416. Page  43
  1417.  
  1418. Some precautions to take....
  1419.  
  1420. -If you are connected via a network, find out the size of the dataway
  1421. (for the PAD Transpac by default: 7 bits) and choose an appropriate
  1422. protocol.
  1423.  
  1424. -Do not use XON/XOFF for flow control with 8 bit protocols (XMODEM and
  1425. YMODEM families)
  1426.  
  1427. -If you are using a minitel as a modem, never use XON/XOFF nor the 8 bit
  1428. protocols.
  1429.  
  1430.  
  1431. Page  44
  1432.  
  1433. 4.12.2 Transfering a file
  1434.  
  1435.  
  1436. The TRANSFER command in the FILE menu.
  1437.  
  1438. Calling this command makes the file transfer control window appear:
  1439.  
  1440.                         (GRAPHIC)
  1441.  
  1442. This window has its own menu bar, a list window with slide bar, a
  1443. command line, and several numeric indicators. It also indicates the
  1444. current directory for the file transfers.
  1445.  
  1446. In the following, all the actions performed on a menu concern the menu
  1447. of the file transfer control window.
  1448.  
  1449. Two operational modes are possible for the transfers, the ASSISTED mode
  1450. and the EXPERT mode. In these two modes, it is convenient to choose the
  1451. file transfer protocol using the PROTOCOL menu. Your choice will depend
  1452. on the considerations expressed above.
  1453.  
  1454.  
  1455. Page  45
  1456.  
  1457. The TRACE menu in this window offers four levels of monitoring for
  1458. analyzing the file transfer process. Monitoring messages appear in the
  1459. emulation window if one chooses a level above 0 (This option is
  1460. generally used only by specialists).
  1461.  
  1462.  
  1463. ASSISTED mode:
  1464.  
  1465. In this mode all actions are performed thru the COMMAND menu
  1466. and the choice of files is accomplished with a dialog box. The actions
  1467. differ slightly according to the protocol being used.
  1468.  
  1469. XMODEM, XMODE.1K, XMODEM.CRC, PDIP Protocols:
  1470.  
  1471.         The SEND command in the COMMAND menu causes a dialog box to
  1472.         appear where the user can choose the file to send. Once the
  1473.         choice is made, the transfer automatically begins.
  1474.  
  1475.         The RECEIVE command in the COMMAND menu displays a dialog area
  1476.         which permits the user to specify the name under
  1477.         which the file will be received.
  1478.         Once the name is specified, the transfer automatically begins.
  1479.  
  1480.  
  1481. YMODEM and KERMIT protocols
  1482.  
  1483.         In this case the 'SEND' and 'RECEIVE' commands display
  1484.         respectively the key words 'SEND' and 'RECEIVE' in the command
  1485.         line. The user can at this moment adjoin the file concerned,
  1486.         and then press ENTER to begin the transfer, or else he can start
  1487.         without specifying a file name. In this latter case a dialog box
  1488.         appears where the user can choose the name of the file.
  1489.  
  1490.  
  1491. Page  46
  1492.  
  1493.         For the KERMIT protocol, the supplementary commands are added to
  1494.         the 'COMMAND' menu. Calling one of these commands will cause the
  1495.         corresponding key word to be displayed in the command line. The
  1496.         user should complete the command as needed, then run it.
  1497.  
  1498.  
  1499. Expert mode.
  1500.  
  1501. In this mode the user directly types the file transfer commands. The use
  1502. of 'wild cards' (generic file specification characters) is allowed. The
  1503. command format is:
  1504.  
  1505.         keyword u:pathname\file
  1506.  
  1507. where 'u' represents a disk drive unit, 'pathname', the specification of
  1508. the directory (using the identical syntax as that of MSDOS) and 'file',
  1509. the name of the file concerned.
  1510.  
  1511. for example:
  1512.  
  1513. -send c:\*.DOC
  1514.         Sends all the files with extension .DOC from the main directory
  1515.         of the C disk
  1516.  
  1517. -send A:\TEST\A*.CFG
  1518.         Sends all files whose names begin with the letter A, having the
  1519.         extension CFG from the TEST directory of disk A
  1520.  
  1521.  
  1522. In the case of multiple file transfers, when SENDING, all the files to
  1523. be sent are displayed in the 'list of files to send'. Each time that a
  1524. file is sent, it is removed from the list. When RECEIVING, each file
  1525. received is added to the 'list of files received'.
  1526.  
  1527.  
  1528. Page  47
  1529.  
  1530. TWinTalk has two classes of protocols: those which transfer the names of
  1531. the files, like YMODEM or KERMIT, and those which don't transfer them,
  1532. like PDIP, XMODEM, XMODEM.CRC and XMODEM.1K.
  1533.  
  1534. To receive files with:
  1535.  
  1536. Protocols which transfer file names.
  1537.  
  1538. To receive the files in a given directory, type the command:
  1539.  
  1540.         receive u:pathname\     or
  1541.         receive u:pathname\*    or yet
  1542.         receive u:pathname\*.*  then ENTER.
  1543.  
  1544. 'u' represents the disk unit, 'pathname' the directory in which the file
  1545. or files will be saved.
  1546.  
  1547. To receive the files in the active directory (which is indicated in the
  1548. file transfer control window), type
  1549.  
  1550.         receive                 then ENTER.
  1551.  
  1552.  
  1553. Protocols which do not transfer the filename.
  1554.  
  1555. In this case you must specify the filename. If it is omitted, a dialog
  1556. box appears to allow the user to specify the file.
  1557.  
  1558.  
  1559. Page  48
  1560.  
  1561.         For example:
  1562.  
  1563.         -receive C:\TEMP\TEST.TXT
  1564.                 receive a file and put in in the directory TEMP of
  1565.                 drive C under the name TEST.TXT and change the active
  1566.                 directory to C:\TEMP.
  1567.  
  1568.         -receive MYFILE.DAT
  1569.                 receive a file and put it in the active directory of
  1570.                 drive C under the name MYFILE.DAT
  1571.  
  1572. Note:
  1573.         In all cases the active directory is updated during
  1574.         the file transfer. In the case when a file is sent, this change
  1575.         is temporary; when a file is received, it is permanent. This
  1576.         particularity can be used to change the active directory.
  1577.  
  1578.  
  1579. The transfer then begins...
  1580.  
  1581.         You can follow its evolution via several means.
  1582.  
  1583.         -the little figure appears to walk while there is an exchange of
  1584.         information betwen the two computers. If you reduce its
  1585.         equivalent icon, the icon will display the figure and you may
  1586.         continue to monitor the progress of the transfer while still
  1587.         working on another Windows application.
  1588.  
  1589.         -the line "Number of blocks transmitted" indicates the number of
  1590.         blocks of data exchanged (the size of the blocks vary according
  1591.         to the protocol used).
  1592.  
  1593.         -the line "% transmitted" tells you what fraction of the file
  1594.         has already been transferred. If you are receiving a file the
  1595.         line is labelled "Kbytes received" and its value indicated the
  1596.         number of kilobytes received.
  1597.  
  1598.  
  1599. Page  49
  1600.  
  1601.         -the line "Errors" indicates the number of errors detected
  1602.         while sending a given block
  1603.  
  1604.         -the line "repetitions" indicates the number of times that a
  1605.         packet had to be retransmitted because of a bad reception.
  1606.  
  1607.         -the line "accumulated erors" tells you the total number of
  1608.         errors detected during the transfer.
  1609.  
  1610.         If the three last lines show a high rate of errors, it is
  1611.         probable that your telephone line is bad. If you can, try to
  1612.         stop the communication and to call back the other computer.
  1613.  
  1614.         If, from the beginning of the transfer, a large number of errors
  1615.         appear while no blocks at all are transferred, you are without
  1616.         doubt not using the same protocol as the remote computer.
  1617.  
  1618.         To stop a transfer in progress, click on the STOP button or
  1619.         close the window controlling the file transfer.
  1620.  
  1621.  
  1622. Page  50
  1623.  
  1624. 4.12.3 The KERMIT Protocol
  1625.  
  1626. The KERMIT protocol was born at Columbia University in the USA. A public
  1627. domain product, it is today a true standard. Its major advantages are:
  1628.  
  1629.         -The large number of different machines that use it.
  1630.         -The possibility of changing to a 7 bit data transfer.
  1631.         -The possibility that it offers of taking control of the remote
  1632.         computer.
  1633.  
  1634. KERMIT offers a large selection of controls for regulating block size,
  1635. types of controls, etc... TWinTalk frees you from all setup commands for
  1636. the transfer by negotiating the transfer parameters with the remote
  1637. computer.
  1638.  
  1639. Therefore, you do not have direct access to these controls, but rest
  1640. assured, TWinTalk will automatically adapt itself to the other computer
  1641. provided that it is using the KERMIT standard.
  1642.  
  1643.  
  1644. The KERMIT commands
  1645.  
  1646. The CWD, DIR, DELETE, GET, TYPE, and COPY commands of the COMMAND menu
  1647. of the file transfer window.
  1648.  
  1649.         KERMIT also lets you take control of the remote computer and to
  1650.         issue some file management commands.
  1651.  
  1652.         To do this, when you connect to the other computer and see the
  1653.         KERMIT prompt on your emulation screen (Kermit>) type the
  1654.         following command in the emulation window.
  1655.  
  1656.                 SERVER then the "ENTER" key.
  1657.  
  1658.  
  1659. Page  51
  1660.  
  1661. This command puts the remote computer in server mode. It is then ready
  1662. to execute your choice of the following commands:
  1663.  
  1664. -       CWD: lets you change the server's active directory (equivalent
  1665.         to the DOS command: ch Dir)
  1666.  
  1667. -       DIR: lets you list the directory on the server
  1668.         Complete syntax: DIR [name] [*][?]
  1669.         ("Wild cards" are allowed)
  1670.  
  1671. -       DELETE: allows you to erase a file on the server.
  1672.         Syntax: Delete Name (*) (?)
  1673.  
  1674. -       GET: allows you to transfer one of the server's files to your
  1675.         own computer.
  1676.         Syntax: GET Name (*) (?)
  1677.  
  1678.                 The file named "Name" is searched for on the server and
  1679.                 then transfered to your own computer where it is placed
  1680.                 in the active directory with the same name.
  1681.  
  1682.         Syntax: GET u:\pathname\name
  1683.  
  1684.                 The file named "Name" is searched for on the server and
  1685.                 then transferred to your own computer where it is palced
  1686.                 in the directory 'pathname' on drive 'u' with the same
  1687.                 name.
  1688.  
  1689.  
  1690. Page  52
  1691.  
  1692. -       COPY: lets you copy one file to another.
  1693.         Syntax: COPY Name (*) (?)  Name2 (*) (?)
  1694.  
  1695. -       BYE: leave server mode and disconnect (no parameters)
  1696.  
  1697. -       FINISH: leave server mode (no parameters)
  1698.  
  1699. To use these commands, select a name from the COMMAND menu, which will
  1700. cause the corresponding password to be pasted in the command line.
  1701. Finish the line by using the keyboard to enter its parameters, then
  1702. press Enter.
  1703.  
  1704. You may also type in the entire command (password included).
  1705.  
  1706. We remind you finally that these commands affect the files located on
  1707. the remote computer and not on your own.
  1708.  
  1709. Note:
  1710. to send a file to a computer in server mode, it is only necessary to
  1711. select the SEND command and to choose the file to send with the help of
  1712. the techniques discussed above.
  1713.  
  1714.  
  1715. Page  53
  1716.  
  1717. 4.12.4 The YMODEM protocol
  1718.  
  1719. This protocol is starting to become a standard for file transfers in the
  1720. world of PC's and compatibles. Its advantages are:
  1721.  
  1722.         -       good efficiency (>80%)
  1723.         -       possibility to send or receive several files
  1724.         -       good transfer security (control by Redundant Cyclic Code
  1725.                 RCC).
  1726.  
  1727. The YMODEM commands
  1728.  
  1729.         Two commands are available for this protocol: SEND and RECEIVE.
  1730.         These commands can be used in expert or assisted mode ase
  1731.         described above.
  1732.  
  1733.         To send several files, use "wild cards", for example:
  1734.  
  1735.                 SEND C:\TEST\*.DAT
  1736.  
  1737.         Sends all the files on the TEST directory of the C disk.
  1738.  
  1739.  
  1740. Page  54
  1741.  
  1742. 4.13 Script Commands
  1743.  
  1744. The LEARN, EXECUTE, TAKE, and IDENTIFY commands of the PROGRAM menu.
  1745.  
  1746. TWinTalk lets you create "procedures" or programs and then to use them
  1747. to execute a series of commands in your stead.
  1748.  
  1749. To illustrate the use of these programs, we are going to create a
  1750. program which automatically connects to the HH-Info-Net Bulletin Board.
  1751.  
  1752.  
  1753.  
  1754. The LEARN command
  1755.  
  1756. Here is the sequence to follow:
  1757.  
  1758.         -       Call the DIALING LIST command from the COMMAND menu.
  1759.  
  1760.         -       Choose the site "HH Info-Net BBS"
  1761.  
  1762.         -       Click the CONFIRM button.
  1763.  
  1764.         -       Select the Keyboard command from the OPTION menu.
  1765.  
  1766.         -       Call the LEARN command from the PROGRAM menu. TWinTalk
  1767.                 then asks you in a dialog box to supply the name that
  1768.                 you would like to give to this program. Type HHINFNET.TWK
  1769.                 then ENTER.
  1770.  
  1771.         -       Select the DIAL command from the COMMAND menu.
  1772.  
  1773.  
  1774. Page  55
  1775.  
  1776.         -       Wait until the welcome screen of the HH-Info-Net bbs is
  1777.                 displayed.
  1778.  
  1779.         -       Enter the requested logon information.
  1780.  
  1781.         -       Complete any routine tasks you wish added to the script.
  1782.  
  1783.         -       To end the learning process, call the LEARN command from
  1784.                 the PROGRAM menu so as to deselect it.
  1785.  
  1786.         Its over. Without any complication, you have just created your
  1787.         first TWinTalk  program.
  1788.  
  1789.         Henceforth, TWinTalk knows how to dial the phone number of
  1790.         HH Info-Net, repeat the logon and other steps automatically.
  1791.         And during this time you can do something else.
  1792.         Life is simple, isn't it?
  1793.  
  1794.         We'll check it right away...
  1795.  
  1796. The EXECUTE command.
  1797.  
  1798.         -       Select the EXECUTE command from the PROGRAM menu.
  1799.  
  1800.         -       In the dialog area, choose HHINFNET.TWK (which is the
  1801.                 program you've just created).
  1802.  
  1803.         -       Watch TWinTalk work.
  1804.  
  1805.  
  1806. Page  56
  1807.  
  1808. The execution window which has appeared on the screen permits the
  1809. programs to display messages or to collect data. To learn more, refer to
  1810. the chapter "TWinTalk reference manual".
  1811.  
  1812. These programs will permit you to automate your work sessions or
  1813. communications. In this way it is possible to automatically start the
  1814. execution of a program when loading in a site. You need only select the
  1815. site from the dialing list and to indicate in the "Procedure" text area the
  1816. name of the program to execute.
  1817.  
  1818. For example, call the DIALING LIST command, select the "Phonebook" site,
  1819. and type in the "procedure" text area the name: HHINFNET.TWK. Click CAPTURE
  1820. then, when the line configuration window appears, click CONFIRM.
  1821.  
  1822. Now, if you call the "phonebook" site, TWinTalk will automatically
  1823. execute the HHINFNET.TWK program.
  1824.  
  1825.  
  1826. Advanced Apprenticeship
  1827.  
  1828. When TWinTalk executes a program, it waits the same time as you
  1829. did before proceeding to the following action.
  1830.  
  1831. It is sometimes useful to synchronize your programs other than by
  1832. waiting. To do this there are two commands.
  1833.  
  1834.         -The "CHAIN SCREEN" command waits for a text string that you
  1835.         will give it at a precise area of the screen. To use it, while
  1836.         you are creating a program (during the 'learning' process), use
  1837.         the mouse to select a word or group of words on one line of the
  1838.         screen, then call the "CHAIN SCREEN" command. Finally, go to the
  1839.         next action that you would like to record.
  1840.  
  1841.  
  1842. Page  57
  1843.  
  1844.         When TWinTalk executes your program, it will wait until it
  1845.         identifies the same text, in the same place, before proceeding
  1846.         to the following command. If the text appears elsewhere on the
  1847.         screen, it will not be recognized.
  1848.  
  1849. -       The CHAIN LINE command is used like CHAIN COMMAND, but the word
  1850.         or group of words will be identified no matter where it appears
  1851.         on the screen.
  1852.  
  1853.  
  1854. Page  58
  1855.  
  1856. Chapter 5: Menu and Command Summary
  1857.  
  1858. This chapter is directed especially at those having an advanced
  1859. knowledge of digital transmissions in particular and computing in
  1860. general.
  1861.  
  1862. They will find here an exhaustive description of the TWinTalk commands,
  1863. in technical terms.
  1864.  
  1865. The organization of this chapter corresponds to that of the menus in
  1866. TWinTalk's menu bar and to the commands in those menus.
  1867.  
  1868.  
  1869. Page  59
  1870.  
  1871. 5.1 The File menu
  1872.  
  1873. The READ command
  1874.         In this mode, the data flow no longer issues from the
  1875.         communication line but from a file specified by the user.
  1876.  
  1877.         The reading of this file is synchronized on the appearance of
  1878.         characters emitted by the keys of the Videotex function (SEND,
  1879.         NEXT, RETURN) for Videotex files.
  1880.  
  1881.  
  1882. The CAPTURE command
  1883.         Duplicates the totality of activity occuring on the
  1884.         communication line (emission and reception) in the indicated
  1885.         file. This captured file will ultimately be reraed by the READ
  1886.         command.
  1887.  
  1888.  
  1889. The TRANSFER command
  1890.  
  1891.         Open the file transfer window (cf section: 'File transfers').
  1892.  
  1893.  
  1894. The SAVE AS.... command
  1895.  
  1896.         Backup everything in the current configuration (with modified
  1897.         communication line and TWinTalk parameters). See if needed the
  1898.         description of configuration files.
  1899.  
  1900.  
  1901. The PRINT command
  1902.  
  1903.         Print the entire screen (with a choice of text or
  1904.         graphics), including the hidden parts if the window size has
  1905.         been reduced.
  1906.  
  1907.  
  1908. Page  60
  1909.  
  1910. 5.2 The EDIT menu
  1911.  
  1912.  
  1913. The COPY command
  1914.         Puts the selected area in the scrapbook. If no area has been
  1915.         selected, the entire screen is copied, including any hidden
  1916.         parts.
  1917.  
  1918.         If TEXT is active, only the alphanumeric characters are copied
  1919.         with a conversion of character standards to the ANSI standard.
  1920.         This assures that the VIDEOTEX and IBM STANDARD screen
  1921.         enhancements are correctly copied.
  1922.  
  1923.         If GRAPHICS is active, the 'Bit-Map' format will be put in the
  1924.         scrapbook. A color bit-map will be copied if the COLOR option
  1925.         from the OPTIONS menu is checked, otherwise a black and white
  1926.         bit-map will be copied.
  1927.  
  1928.  
  1929. The PASTE command
  1930.  
  1931.         Sends the alphanumeric and control characters contained in the
  1932.         scrapbook to the communication line.
  1933.  
  1934.         Note: In the case of a VIDEOTEX emulation, each line of text is
  1935.         followed by characters which make up the function key 'NEXT'.
  1936.         The NEXT key is the one conventionally used by all videotex
  1937.         servers to change, in the case of a multi-line reception, from
  1938.         one line to another.
  1939.  
  1940.         In the case of other emulations, the CR followed by LF
  1941.         characters are inserted after each line of text.
  1942.  
  1943.  
  1944. The TEXT command
  1945.  
  1946.         Indicates that the COPY command should generate a Text type
  1947.         scrapbook.
  1948.  
  1949.  
  1950. Page  61
  1951.  
  1952. The GRAPHICS command
  1953.  
  1954.         Indicates that the COPY command should generate a bit-map type
  1955.         scrapbook. Useable only with the Videotex and Prestel
  1956.         emulations.
  1957.  
  1958.  
  1959. Page  62
  1960.  
  1961. 5.3 The COMMANDS menu
  1962.  
  1963.  
  1964. The DIALING LIST command
  1965.  
  1966.         Opens the dialing list window (cf section "Using the site agenda")
  1967.  
  1968.  
  1969. The DIAL command
  1970.  
  1971.         Starts the dialing of the last telephone number selected. If the
  1972.         modem does not dial, the dialog for manual dialing is invoked.
  1973.  
  1974.         If the modem does autodial, the dialog for automatic
  1975.         dialing offers the possibility of simulating the detection of
  1976.         the carrier (signal 109 "Carrier Detection" (RSLD)) with the
  1977.         FORCE button.
  1978.  
  1979.  
  1980. The TALK TO MODEM command
  1981.  
  1982.         Logical opening of the line. Provokes the validation of the
  1983.         signal "Data Terminal Ready" 108.2 (DTR)
  1984.  
  1985.  
  1986. The DISCONNECT command
  1987.  
  1988.         Logical closing of the line and invalidation of the "Data
  1989.         Terminal Ready" signal 108.2 (DTR)
  1990.  
  1991.  
  1992. The BREAK command
  1993.  
  1994.         Places the communication line (Signal 103) in "Break" status,
  1995.         that is in the low state for 750 ms.
  1996.  
  1997.  
  1998. Page  63
  1999.  
  2000.  
  2001. The AUTOMATIC command
  2002.  
  2003.         When this option is checked, its permits one to automatically
  2004. chain the dialing, the carrier detection, and the connection. When it is
  2005. not checked, (called IDENTIFY), it is then possible for the user to
  2006. make a modem connection with the TALK TO MODEM command, then to correspond
  2007. with the modem via the HAYES commands...
  2008.  
  2009. Refer to the technical documentation of the modem for the HAYES
  2010. commands.
  2011.  
  2012. For example:
  2013.  
  2014. You are calling a correspondent to whom you would like to send a file.
  2015. You decide on the protocol to use and on the line parameters; it then
  2016. suffices that one of you types ATD <CR> to take the line, that the other
  2017. type ATA <CR> to have his modem respond, and the two modems will connect
  2018. themselves together. The transfer can then be executed...
  2019.  
  2020.  
  2021. The IDENTIFY command
  2022.  
  2023. Lets you identify the communication equipment. Those recognized are:
  2024.  
  2025. -       the different minitels
  2026. -       external Hayes compatible modems
  2027. -       Hayes compatible modem cards
  2028.  
  2029.  
  2030. Page  64
  2031.  
  2032. 5.4 The OPTIONS menu
  2033.  
  2034. The COMMUNICATIONS command
  2035.  
  2036. Accesses the dialog for the serial line configuration. The parameters
  2037. are the following:
  2038.  
  2039. -       Port: indicates the exit port to which the communication
  2040.         equipment is connected. Refer to Appendix C "Gadgets and Tricks"
  2041.         for the use of the COM3 and COM4 ports.
  2042.  
  2043. -       Word Size: size of the data words exchanged in bits (not
  2044.         counting stop bits or parity bits)
  2045.  
  2046. -       Parity: each word can be completed with a parity bit computed as
  2047.         follows:
  2048.  
  2049.         *even: so as to make the number of 1 bits even
  2050.         *odd : so as to make the number of 1 bits odd
  2051.         *marked: the parity bit is always 1
  2052.         *space:  the parity bit is always 0
  2053.         *none: no parity bit is sent
  2054.  
  2055. -       Stop bits: the number of bits sent after each character to reset
  2056.         the receiver in wait state.
  2057.  
  2058. -       Control: indicates the mode of flow control
  2059.  
  2060.         * XON/XOFF : the characters DC1 and DC3 are used to tell the
  2061.         remote computer that it should suspend or restart its
  2062.         transmission.
  2063.  
  2064.         Note: This type of control cannot be used with the XMODEM.xxx
  2065.         and YMODEM protocols.
  2066.  
  2067.  
  2068. Page  65
  2069.  
  2070.         * Equipment: the physical signals 105, 106 (CTS and RTS) and 107
  2071.         108.2 (DSR and DTR) serve as dialog for flow regulation.
  2072.  
  2073.         *None: no flow control
  2074.  
  2075. -       Duplex: indicates the possibility of simultaneous data flow in
  2076.         both directions.
  2077.  
  2078.         *Full: simultaneous communication in both directions. This mode
  2079.         implies that the echo of a typed character must be done by the
  2080.         remote machine.
  2081.  
  2082.  
  2083.         *Half: communication in one direction alternated with
  2084.         the other. This mode implies that the echo of a typed character
  2085.         must be done locally by your machine.
  2086.  
  2087.         Note: If for each typed character you see two characters on your
  2088.         screen, you are undoubtedly in Half Duplex mode on a Full Duplex
  2089.         line. In the same way, if you have no echo at all, you are
  2090.         without doubt in Full Duplex mode on a Half Duplex line.
  2091.  
  2092. -       Mode: allows you to tell the modem on which frequencies it
  2093.         should emit and on which frequencies it should receive.
  2094.  
  2095.         *To call a central server, choose "CALL".
  2096.         *To communicate with another microcomputer, choose the mode
  2097.         inverse to that of the other system.
  2098.  
  2099.         Note: The RESPONSE mode equally serves to generate an
  2100.         echo for the remote machine. To do this, this mode automatically
  2101.         selects the Half Duplex mode.
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.                                                             +
  2134. Page  66
  2135.  
  2136. -       Return: indicates the characters used to substitute for a
  2137.         received CR (ODH):
  2138.  
  2139.         *CR + LF:   CR is replaced by CR and LF (OD,OA)pe
  2140.         *CR     :   CR is kept as it is
  2141.         *removed: the CR character is eliminated when received
  2142.  
  2143.  
  2144. -       Jump: indicates the treatment of the LF character (OAh):
  2145.  
  2146.         *CR + LF: a received LF is replaced by CR and LF (OD,OA)
  2147.         *LF     : the LF character is kept as it is.
  2148.         *removed: the LF character is eliminated when received
  2149.  
  2150.  
  2151. -       Character Wait: indicates the minimum delay between two
  2152.         consecutive characters during emission. You may either indicate
  2153.         a time in milliseconds in the text area, or select AUTO : the
  2154.         software will adjust itself automatically.
  2155.  
  2156.  
  2157. -       Line Wait: indicates the minimum delay between lines (separated
  2158.         by CR or LF) during emission, as for the character wait.
  2159.  
  2160.  
  2161. -       Peripherals: this list area contains the names of the different
  2162.         communication equipment managed by TWinTalk . The choice:
  2163.  
  2164.         LOCAL indicates the connection of two computers by intermediary
  2165.         cable to eliminate any modem or of a PC as a terminal for a
  2166.         minicomputer.
  2167.  
  2168.  
  2169.  
  2170. Page  67
  2171.  
  2172.         HAYES indicates that a standard HAYES modem is being used; this
  2173.         peripheral without doubt cannot manage asymmetric
  2174.         communications.
  2175.  
  2176.  
  2177.         NonHAYES indicates a non-dialing modem.
  2178.  
  2179.  
  2180.         All the other choices are for specific modem cards
  2181.  
  2182.  
  2183. -       SPEED: indicates the baud rate for data exchange. In the case of
  2184.         asymmetric exchanges (different transmission and reception
  2185.         speeds), the first number is the reception speed.
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191. The KEYBOARD command
  2192.  
  2193.         Opens the keyboard window containing the specific keys of the
  2194.         selected terminal.
  2195.  
  2196.         Note:   By clicking the keyboard window button, you activate
  2197.                 this window and deactivate the main window. If you would
  2198.                 like to type characters in the main window, reactivate
  2199.                 it by clicking one time above it.
  2200.  
  2201.  
  2202. Page  68
  2203.  
  2204. The COLOR command
  2205.  
  2206.         If you have a color monitor and graphics card (EGA or VGA),
  2207.         COLOR will transform the 8 available colors to 8 shades of grey.
  2208.         If you have a monochrome graphics configuration, you will be in
  2209.         the grey mode by default, and COLOR will put TWinTalk in a mode
  2210.         of maximum contrast which will enhance that text not always easy
  2211.         to read with certain shades of grey.
  2212.  
  2213.         Moreover, this option determines the type of bit-map (Color or
  2214.         not) to copy into the scrapbook.
  2215.  
  2216.  
  2217. The ARRANGE command
  2218.  
  2219.         ARRANGE brings back, when it is possible and necessary, the
  2220.         emulation window in its original place and size. This command is
  2221.         only usable in Videotex and Prestel modes because these are the
  2222.         only two emulations which authorize the displacement of the
  2223.         display window.
  2224.  
  2225.  
  2226. The CLOCK command
  2227.  
  2228.         Allows one to specify the billing parameters of the
  2229.         communication and to open the clock window. This window will
  2230.         only be displayed at the time of logical connection to the modem
  2231.         and will only start the accounting of the connection when the
  2232.         carrier is detected.
  2233.  
  2234.  
  2235. The VERTICAL SCROLLBAR command
  2236.  
  2237.         Allows one to make the vertical control bar of the current
  2238.         emulation window disappear. This action permits the display of
  2239.         more characters on one line and is very useful for the 132
  2240.         column mode of the VT102. The users of VGA video cards can
  2241.         have access to this mode in order to see 80 characters per line.
  2242.  
  2243.  
  2244. Page  69
  2245.  
  2246. The INK/PAPER command
  2247.  
  2248.         Allows you to change the color of the screen character display.
  2249.         The term INK refers to the color of the characters themselves,
  2250.         PAPER refers to the background color. This command makes the
  2251.         following dialog box appear:
  2252.  
  2253.                                 (GRAPHIC)
  2254.  
  2255.         With the mouse click in the box showing the color of your choice
  2256.         for the ink and the paper and confirm.
  2257.  
  2258.         With a keyboard, use the TAB key to move the cursor from field
  2259.         to field, the LEFT and RIGHT arrows to move the cursor from
  2260.         color to color, and type SPACE to select the chosen color.
  2261.         Confirm with the ENTER key.
  2262.  
  2263.  
  2264. The STATUS LINE command
  2265.  
  2266.         Allows you to view certain information at the bottom of the
  2267.         window in a status line.
  2268.  
  2269.         The first field contains help information for each
  2270.         menu. This line of text is updated each time you choose
  2271.         an option from a TWinTalk menu.
  2272.  
  2273.  
  2274. Page  70
  2275.  
  2276.         The second field contains the following information:
  2277.  
  2278.         -       The current cursor position on the emulated terminal :
  2279.                 Lxxx: Cxxx
  2280.  
  2281.         -       The message "AUTO" if TWinTalk is in Automatic mode
  2282.  
  2283.         -       The message "CAPT" if TWinTalk is in capture mode
  2284.                 (cf "The CAPTURE command")
  2285.  
  2286.         -       The message "APPR" if TWinTalk is in its learning mode
  2287.  
  2288.         This command acts like a toggle, the act of reselecting it
  2289.         eliminates the status line.
  2290.  
  2291.  
  2292. The SETUP VT/ANSI command.
  2293.  
  2294.         Allows you to specify certain parameters for the VT102 and ANSI
  2295.         emulations. This command makes the following dialog box appear:
  2296.  
  2297.                                 (GRAPHIC)
  2298.  
  2299.         -       Click the option '132 columns' to have 132 columns on a
  2300.                 VT102 or ANSI.
  2301.  
  2302.  
  2303. Page  71
  2304.  
  2305.         -       Click the 'Reverse screen' option to invert the colors
  2306.                 of the VT102 or ANSI screens.
  2307.  
  2308.         -       Click the 'Auto linefeed' option to have the emulator
  2309.                 change to a new line automatically at column 80 or 132.
  2310.  
  2311.         -       Click the 'CR->CR/LF' option to have the emulator
  2312.                 perform the following actions:
  2313.  
  2314.                 *Send LF after CR when you press the RETURN key
  2315.                 *Add CR after receiving a LF character.
  2316.  
  2317.         -       Click the 'Configure Keyboard' option to use the
  2318.                 keyboard defined by the user instead of the standard
  2319.                 VT102 keyboard.
  2320.  
  2321.         -       Click the 'Application Mode Arrows' option to put
  2322.                 the arrows on a VT102 keyboard in application mode
  2323.                 (sending <ESC>Ox instead of <ESC>[x)
  2324.  
  2325.         -       Click the 'BS sends DEL' option so that the BS key (in
  2326.                 general labelled by a left arrow '<---') sends DEL
  2327.                 character code 127. In this case, simultaneously
  2328.                 pressing the SHIFT and BS keys will send the BS
  2329.                 character code 08.
  2330.  
  2331.  
  2332.         Input the upper and lower margins for the VT102 emulators.
  2333.         These margins determine the part of the VT102 screen subject to
  2334.         vertical scroll.
  2335.  
  2336.  
  2337. Page  72
  2338.  
  2339. The Setup Keyboard command
  2340.  
  2341.         Permits the user to configure certain function keys for his
  2342.         convenience. This command causes a dialog box to appear which
  2343.         suggests for each configurable key the character sequence before
  2344.         being sent. Only eight keys are simultaneously displayed; to see
  2345.         and define other keys, click the 'NEXT>>' or '<<PRECEEDING'
  2346.         buttons.
  2347.  
  2348.                                 (GRAPHIC)
  2349.  
  2350.  
  2351.         The sequence sent when a configurable key is pressed is input
  2352.         just as it is. Enter control characters in the form : <xx>
  2353.         where xx is the hexadecimal character code.
  2354.  
  2355.         For example the input <1B>[2J will produce the
  2356.         sequence ESC [2J when the key is pressed. To input the space
  2357.         character replace it by <20>. To input the character '<' replace
  2358.         it by <60>.
  2359.  
  2360.         In the case of a syntax error, (an imbalance of brackets, for
  2361.         example) clicking the 'OK', 'NEXT>>' or '<<PRECEEDING' buttons
  2362.         will cause the message 'Syntax Error' to be displayed  with the
  2363.         concerned lines in reverse video.
  2364.  
  2365.         Note: Attention, all the sequences defined in this menu are
  2366.               used only if the Keyboard Configured option is chosen
  2367.               in the Setup VT/ANSI dialog box.
  2368.  
  2369. Page  73
  2370.  
  2371. 5.5 The TERMINAL menu
  2372.  
  2373. Allows you to choose a terminal emulation to use among:
  2374.  
  2375.         .TTY
  2376.         .PRESTEL
  2377.         .VIDEOTEX
  2378.         .VT52
  2379.         .VT102
  2380.         .VT220
  2381.         .TELETEL
  2382.         .ANSI
  2383.         .D2000
  2384.  
  2385.  
  2386. The IBM Standard command
  2387.  
  2388.         For the TTY, VT52, VT102, and ANSI emulations, this command
  2389.         allows the use of the IBM character set instead of the standard
  2390.         ASCII set. This set is particularly well suited for semi-graphic
  2391.         drawings.
  2392.  
  2393.  
  2394. The OEM CHAR SET command
  2395.  
  2396.         This command replaces the IBM STANDARD command in the TERMINAL
  2397.         menu when emulating the VT102. It means that TWinTalk should
  2398.         substitute the 7 bit French standard for the US standard. This
  2399.         command is needed in order to be able to produce accented
  2400.         characters in the VT102 emulation.
  2401.  
  2402.  
  2403. Page  74
  2404.  
  2405. 5.6 The PROGRAM menu
  2406.  
  2407. The LEARN command
  2408.         Allows for the automatic generation of a TWinTalk program. Refer
  2409.         to the section "The TWinTalk Programs" in chapter 4 for more
  2410.         information.
  2411.  
  2412.  
  2413. The EDIT command
  2414.  
  2415.         Loads the application NOTEPAD.EXE without leaving TWinTalk.
  2416.         Allows you to modify a TWinTalk program.
  2417.  
  2418.         Note:The NOTEPAD.EXE application is used by default. The editor
  2419.         of your choice may be used instead by placing the fillowing line
  2420.         in the file WIN.INI under the heading [TWinTalk]
  2421.  
  2422.                 EDIT=u:\pathname\editor.exe
  2423.  
  2424.         Where 'editor.exe' is the name of the editor that you are going
  2425.         to use, 'pathname' the directory where it can be found, and 'u'
  2426.         the disk drive unit.
  2427.  
  2428.  
  2429.  
  2430. Page  75
  2431.  
  2432. The EXECUTE command
  2433.  
  2434.         Starts the loading and execution of a TWinTalk program. A dialog
  2435.         box appears where the name of the file to be executed is
  2436.         specified. Once the name is chosen, the execution window is
  2437.         displayed:
  2438.  
  2439.                                 (GRAPHIC)
  2440.  
  2441.         The TWinTalk programs display information in the upper window,
  2442.         while data can be entered in the lower window.
  2443.  
  2444.         Note: Various programs can control the appearance of this
  2445.         window, which is why for some programs the window doesn't appear
  2446.         at execution time.
  2447.  
  2448.     ~~~~This whole area from here on needs some work
  2449.         - commands are no longer entirely valid, but serve as a
  2450.           reference only         ---LW   11/2/89
  2451.  
  2452. The SHOW command
  2453.  
  2454.         Allows you to display the TWinTalk execution window, so that the
  2455.         result of the execution may be seen or to terminate the
  2456.         execution. The window is hidden by default. This command is
  2457.         'learned' if TWinTalk is in learning mode.
  2458.  
  2459.  
  2460. The HIDE command
  2461.  
  2462.         Allows you to hide the TWinTalk execution window. This command
  2463.         can be useful for freeing up space on the screen. This command
  2464.         is 'learned' when TWinTalk is in learning mode.
  2465.  
  2466.  
  2467. Page  76
  2468.  
  2469. The CHAIN SCREEN command
  2470.  
  2471.         In learning mode, it allows you to synchronize the
  2472.         execution of the next TWinTalk command with the appearance on
  2473.         the screen of a given text string at a given position.
  2474.  
  2475.         This text and its position is indicated by selecting them using
  2476.         the mouse before calling the CHAIN SCREEN command.
  2477.  
  2478.  
  2479. The CHAIN LINE command
  2480.  
  2481.         In the same manner as the IDENTIFY command, it allows you to
  2482.         synchronize upon the reception of a text string, but this time
  2483.         independently of its position on the screen.
  2484.  
  2485.         The text to be waited for is indicated by a selection with the
  2486.         mouse before calling the CHAIN LINE command.
  2487.  
  2488.  
  2489. Page  77
  2490.  
  2491. 5.7 The DEBUG menu
  2492.  
  2493. Allows you to view the non displayable characters sent and received. The
  2494. different commands of this menu correspond to different modes of
  2495. viewing.
  2496.  
  2497.         -       None: invisible characters are not displayed, but are
  2498.                 eventually interpreted as command sequences from the
  2499.                 terminal.
  2500.  
  2501.         -       Hexadecimal: all the characters are replaced by their
  2502.                 hexadecimal ASCII code between brackets. For example,
  2503.                 the hexadecimal ASCII character code OD will be seen as:
  2504.                 [OD].
  2505.  
  2506.         -       Characters: the characters formed using the "Control"
  2507.                 key are displayed in the form : [^M], for example, for
  2508.                 the combination 'Control' and 'M'. Other characters are
  2509.                 displayed normally.
  2510.  
  2511.         -       ASCII: the special characters in the ASCII character set
  2512.                 are visualized by their names in this code. For
  2513.                 example, the hexadecimal character code OD will be seen
  2514.                 as (CR).
  2515.  
  2516.  
  2517. Page  78
  2518.  
  2519. 5.8 The command line parameters
  2520.  
  2521.         TWinTalk can be run directly from DOS without having first run
  2522.         WINDOWS. TWinTalk will take care of this responsibility....
  2523.         To accomplish this you must have defined a search path for the
  2524.         directory where WINDOWS is installed, for example:
  2525.  
  2526.                 PATH=C:\WINDOWS
  2527.  
  2528.         TWinTalk will look for WIN.COM, WIN86.COM, and
  2529.         WIN386.EXE, in succession,  and run the first one found.
  2530.  
  2531.         The name of a site can be specified in the command line.
  2532.         TWinTalk will start up with the configuration of that site.
  2533.         If a procedure has been defined for that site, it also will be
  2534.         automatically run. For example:
  2535.  
  2536.                 TWinTalk PHONEBOOK.CFG
  2537.  
  2538.         will run WINDOWS then TWinTalk with the PHONEBOOK.CFG site
  2539.         configuration. If no site is specified, TWinTalk will use the
  2540.         configuration TWinTalk.CFG.   (currently annuaire.cfg)                                        ~
  2541.  ~            twintalk.cfg                                                                  should be the                                                                 default - not                                                                 annuair
  2542. Page  79
  2543.  
  2544. 5.9 Use of COM3 and COM4.
  2545.  
  2546. On PC's and compatibles the communication ports COMn are defined by two
  2547. parameters:
  2548.  
  2549. -       The input/output address
  2550. -       The number of the interrupt line used
  2551.  
  2552. For example COM1 is defined by:
  2553.  
  2554. -       Address         2F8h
  2555. -       Interrupt       4
  2556.  
  2557. While the COM1 and COM2 ports have standard addresses and interrupt
  2558. line numbers, that is not the case for the COM3 and COM4 ports.
  2559. Each manufacturer of modem or communication cards has defined specific
  2560. addresses for his product.
  2561.  
  2562. TWinTalk allows you to use the COM3 and COM4 ports by redirecting the
  2563. COM2 port to one of them. It will therefore not be possible to
  2564. simultaneously use both COM2 and COM3 or both COM2 and COM4.
  2565.  
  2566. -------the following port addresses have ben changed to the de facto US
  2567.        standard for 3&4      ------LW 11/3/89
  2568.  
  2569. TWinTalk knows the addresses of the non-standard ports by reading the
  2570. absolute memory address 0:404h for COM3 and 0:406h for COM4. These
  2571. values should be initialized by the user before running TWinTalk.
  2572. Interrupt line No. 3 will always be used for COM3 and COM4.
  2573.  
  2574. For example, if your card can be configured in COM3 at address 02FEh,
  2575. enter (using the DOS Debug facility for example):
  2576.  
  2577. -       In 0:404h       FEh
  2578. -       In 0:405h       02h
  2579.  
  2580.  
  2581. Page  80
  2582.  
  2583. We advise you to construct a command file of the following type:
  2584.  
  2585. in setcom.bat:
  2586.  
  2587.         echo off
  2588.         debug < setcom.dat > nul
  2589.  
  2590. in setcom.dat:
  2591.         e 0:404
  2592.         FE02
  2593.         q
  2594.  
  2595. This command file runs the debug utility by taking the commands from the
  2596. file setcom.dat and redirecting the display to the nul peripheral.
  2597.  
  2598.  
  2599.  
  2600. Page  81
  2601.  
  2602.  
  2603. Chapter 6: The Script Language - See also Twintalk.new for revisions
  2604.  
  2605. TWinTalk has a high level PASCAL command language. You can, using
  2606. specific commands, run TWinTalk just as you do from the keyboard.
  2607.  
  2608. This chapter is addressed to users who would like to completely use all
  2609. of TWinTalk's programming possibilities. Those who don't wish to jump
  2610. into its programming may refer to the section "The TWinTalk programs"
  2611. in chapter 4.
  2612.  
  2613.  
  2614. Language definition
  2615.  
  2616. The Script language is very similar to Standard Pascal but nonetheless
  2617. with the following exceptions:
  2618.  
  2619. 1)The types FILE, REAL, STRING, SET OF are not implemented.
  2620.  
  2621. 2)The following commands are not implemented:
  2622.  
  2623.         RESET, REWRITE, CLOSE, FORWARD, GET, GOTO, MARK, RELEASE, PUT
  2624.  
  2625. 3) These supplementary keywords have been added to the language:
  2626.  
  2627.         a)Constants
  2628.  
  2629.                 FALSE, TRUE, LINE, SCREEN, ESCAPE, RETURN, HOME, END,
  2630.                 TAB, HELP, LEFT, RIGHT, UP, DOWN, DELETE, BACK, PRIOR,
  2631.                 NEXT, ADD, SUBTRACT, DECIMAL, MULTIPLY, F1 to F16, NUM0
  2632.                 to NUM9.
  2633.  
  2634.         b)Functions
  2635.  
  2636.                 CONNECTED, FIND, TAKEN.
  2637.  
  2638.  
  2639. Page  83
  2640.  
  2641.         c)Procedures
  2642.  
  2643.                 CLS, DIAL, SEND, WAIT, CONNECT, DISCONNECT, EXIT,
  2644.                 CAPTURE, STOPCAPTURE, TEXT, GRAPHIC, INITTAKE, TRANSFER,
  2645.                 CONFIG, COPY, HIDE, SHOW
  2646.  
  2647.  
  2648. 6.1 Preliminaries
  2649.  
  2650. The  alphabet is composed of letters, numbers, and special
  2651. symbols. The program lines are constructed from this alphabet while
  2652. following the  syntax. It does not distinguish between
  2653. upper and lower case letters except in character strings and in
  2654. comments.
  2655.  
  2656. The special characters and keywords that are used are as follows:
  2657.  
  2658. +        -        /        *        =        <>       <        >
  2659. <=       >=       :=       (        )        [        ]        {
  2660. }.       ,        :        ..
  2661. And      Array    Begin    Case     Const    Div      Do       Downto
  2662. Else     End      For      Function If       Mod      Not      Of
  2663. Or       Packed   Procedure         Program           Record   Repeat
  2664. Then     To       Type     Until    Var      While
  2665.  
  2666.  
  2667. 6.1.1 The Numbers
  2668.  
  2669. TWinPas only recognizes signed whole numbers between -32768 and 32767
  2670.  
  2671.  
  2672. 6.1.2 The Identifiers
  2673.  
  2674. Identifiers in TWinPas are names which represent memory locations. They
  2675. are composed of a letter followed by one or several digits or letters.
  2676.  
  2677.  
  2678. Page  84
  2679.  
  2680. Examples:
  2681.  
  2682.         a
  2683.         CurrentChar
  2684.         x2000
  2685.         VeryVeryLongName
  2686.  
  2687. Identifiers may be arbitrarily long but are truncated to 16
  2688. characters by TWinPas. Remember that reserved words may not be used as
  2689. identifiers.
  2690.  
  2691.  
  2692. 6.1.3 Constant Strings
  2693.  
  2694. In TWinPas a character string constant is composed of a sequence of
  2695. characters delimited by apostrophes.
  2696.  
  2697. Examples:
  2698.  
  2699.         'This is a constant'
  2700.         'ABCDEF'
  2701.  
  2702.  
  2703. 6.1.4 Comments
  2704.  
  2705. Comments are arbitrary sequences of characters on an arbitrary number of
  2706. lines delimited by the symbols (* and *).
  2707.  
  2708. Examples:
  2709.         (*This is a comment
  2710.         without much
  2711.         interest on
  2712.         several lines*)
  2713.  
  2714.  
  2715. Page  85
  2716.  
  2717. 6.2 TWinPas Programs
  2718.  
  2719. Each TWinPas program is composed of a header and a program body.
  2720.  
  2721. The header allows for parameter declaration.
  2722.  
  2723. The program is composed of blocks which are themselves composed of a
  2724. header and a body.
  2725.  
  2726. The body of the block contains the execution instructions.
  2727.  
  2728.  
  2729. 6.2.1 Defining constants
  2730.  
  2731. Defining constants allows you to associate a name with a
  2732. constant. Constant identifiers allow you to make a program more
  2733. readable.
  2734.  
  2735. Example:
  2736.  
  2737.         Const   MAXLEN=80;
  2738.                 NB_iterations=100;
  2739.  
  2740. These declarations are also very useful for constants which can change
  2741. their value in time due to later modifications.
  2742.  
  2743.  
  2744. 6.2.2 Definition of types
  2745.  
  2746. In TWinPas data types can be described in the type declaration area or
  2747. referenced when the variables are declared.
  2748.  
  2749.  
  2750. Page  86
  2751.  
  2752. 6.2.3 Declaration of Variables
  2753.  
  2754. Examples:
  2755.  
  2756.         Var     a,b:    Integer;
  2757.                 c:      Char;
  2758.                 d:      Array[1..10] OfChar;
  2759.  
  2760. The type may be a standard type, a type description, or a type
  2761. identifier. All TWinPas variables should be defined by variable
  2762. declarations except if they are predefined.
  2763.  
  2764. A variable should not be declared twice at the same level of
  2765. declaration.
  2766.  
  2767.         Var     x:      Integer;
  2768.                 x:      Char;
  2769.  
  2770.                 This declaration is illegal.
  2771.  
  2772.  
  2773. 6.2.4 Declaration of procedures and functions
  2774.  
  2775.         This subject is developed in section 6.5
  2776.  
  2777.  
  2778. 6.2.5 Instructions
  2779.  
  2780.         Instructions are described in section 6.4
  2781.  
  2782.  
  2783. 6.2.6 Range of a declaration
  2784.  
  2785. In TWinPas all declarations have a certain range. The range of a
  2786. variable declaration (that is, the possibility to refer to the variable)
  2787. is all of that block in which it has been defined as well as all
  2788. subsidiary blocks except those where the variable is redefined.
  2789.  
  2790.  
  2791. Page  87
  2792.  
  2793. Example:
  2794.  
  2795.         Procedure a (b:Integer;c:Integer);
  2796.         (* beginning of the range of a, b, and c *)
  2797.         Var d:Char; (* beginning of the range of d *)
  2798.  
  2799.                 Procedure b;
  2800.                 (* Hole in the range of integer b *)
  2801.                 Var d:Char;
  2802.                 (* Hole in the range of the least nested variable d *)
  2803.                 Begin (* Body of procedure b *)
  2804.                   .
  2805.                   .
  2806.                 End; (* Procedure b and the most nested variable d
  2807.                         end their range here *)
  2808.                 (* the integer b and the least nested variable d are
  2809.                    again recognized here *)
  2810.         Begin (* Body of procedure a *)
  2811.           .
  2812.           .
  2813.         End;
  2814.         (* b,c,d are now out of their ranges *)
  2815.  
  2816. 6.2.7 The Supervisor and User Modes
  2817.  
  2818. TWinTalk is a program which offers multiple functions. However, all of these
  2819. functions are not used by all users. To simplify the command interface so as
  2820. not to confuse novice users, two working modes are available:
  2821.  
  2822. -       Supervisor mode:          This mode allows the user the use of all the
  2823.                                   functions without restriction.
  2824.  
  2825. -       User mode:                This mode suppresses some commands from the
  2826.                                   menu so as to make the user interface
  2827.                                   simpler. All of the options used to
  2828.                                   configure communications are suppressed so
  2829.                                   that a novice user cannot accidently modify
  2830.                                   the parameters.
  2831.  
  2832. How to change to User mode and vice-versa?
  2833.  
  2834. TWinTalk's configuration files (*.cfg) contain the following password:
  2835.         Access=
  2836. A value of 0 permits supervisor access. A value of 1 permits user access.
  2837.  
  2838. Change the value of this password using an editor (notepad.exe) to change from
  2839. one mode to another.
  2840.  
  2841. This password is only read for the startup configuration of the program. If
  2842. you later choose another site from the list, the access mode will not change.
  2843. It is then advisable to change the file TWinTalk.cfg.
  2844.  
  2845. 6.3 Data types
  2846.  
  2847. In TWinPas data types may be very structured and complex, but all are
  2848. constructed from simple (non-structured) types. A non structured data
  2849. type is either a type defined by the programmer or one of the three
  2850. standard scalar types.
  2851.  
  2852.  
  2853. 6.3.1 Standard Scalar Types
  2854.  
  2855. The three predefined scalar types are Integer, Boolean, and Char
  2856. (Character).
  2857.  
  2858.  
  2859. Page  88
  2860.  
  2861. 6.3.1.1 The Integer Type
  2862.  
  2863. An Integer type value is a whole number whose value is limited by the
  2864. system used. In TWinPas an integer is composed of two octets, which
  2865. implies a value in the interval -32768 to 32767.
  2866.  
  2867. The arithmetic operators which have integer operands and which return
  2868. integers as results are:
  2869.  
  2870.         +       Addition
  2871.         -       Subtraction
  2872.         *       Multiplication
  2873.         Div     Integer Division
  2874.         Mod     Modulo (remainder after division)
  2875.  
  2876. Example:
  2877.  
  2878.         8 Div 3 = 2
  2879.         8 Mod 5 = 3
  2880.         5  -  9 = -4
  2881.  
  2882. The + and - operators can be used to indicate the sign of an operand.
  2883.  
  2884. Examples:
  2885.  
  2886. -negative
  2887. +2453
  2888.  
  2889. Several TWinPas functions are applicable to integers. These functions
  2890. are described in detail in Chapter 7.
  2891.  
  2892. Some functionsoperate on integers as well as on the other non-structured
  2893. types presented next:
  2894.  
  2895.  
  2896. Page  89
  2897.  
  2898. 6.3.1.2 The Real Type
  2899.  
  2900. This type is not implemented in TWinPas.
  2901.  
  2902.  
  2903. 6.3.1.3 The Boolean Type
  2904.  
  2905. A Boolean value is one of the logical values True or False. True and
  2906. False are two values prefefined such that:
  2907.  
  2908.         Pred(True) =False
  2909.         Succ(False)=True
  2910.  
  2911.  
  2912. 6.3.1.4 The Character Type
  2913.  
  2914. A character type value is an element of the ANSI character set. The ANSI
  2915. character set is composed of the ASCII character set represented by the
  2916. values 0 to 127, and an extended character set of values from 128 to
  2917. 255.
  2918. A Chr type value is an integer value ordered according to the ANSI set.
  2919.  
  2920. Examples:
  2921.  
  2922.         Succ('A')='B'
  2923.         Pred('0')='/'
  2924.  
  2925. The Ord function makes a correspondence between the set of characters
  2926. and the non-negative integers. These integers vary between 0 and 255.
  2927. The Chr function makes the correspondance between the non-negative
  2928. integers and their equivalent character in the ANSI set.
  2929.  
  2930.  
  2931. Page  90
  2932.  
  2933. Examples:
  2934.  
  2935.         Ord('0')=48
  2936.         Ord('1')=49 etc...
  2937.  
  2938.         Chr(48)='0'
  2939.         Chr(Ord('0'))='0'
  2940.  
  2941.  
  2942. 6.3.2 The Interval type ('..')
  2943.  
  2944. The interval type is not defined in TWinPas as such; nevertheless you
  2945. may use it when declaring tables. (cf 6.3.3)
  2946.  
  2947.  
  2948. 6.3.3 The Array type (Tables)
  2949.  
  2950. A table is composed of a fixed number of elements of the same type,
  2951. called the basic type. Each element of the table is accessible by an
  2952. index. The basic type can be anything, but the index type must be
  2953. ordinal.
  2954.  
  2955. Examples:
  2956.  
  2957.         Var Table : Array [1..8] Of Integer;
  2958.             Letters : Array [1..10] Of Array [1..5] Of Char;
  2959.  
  2960. The indices should be chosen from the interval -32767 to 32767. They can
  2961. however be composite expressions.
  2962.  
  2963.  
  2964. Page  91
  2965.  
  2966. Example:
  2967.  
  2968. Letters[index Mod 8][3]:=chr(index+ord('A'));
  2969.  
  2970. The keyword Packed that one can find in front of the words Array or
  2971. Record in some PASCAL programs is recognized but has no effect on these
  2972. tables or structures.
  2973.  
  2974. Multi-dimensioned tables may be declared in a more compact manner.
  2975. Reconsidering the example of the table Letters declared on page 90, one
  2976. may instead substitute:
  2977.  
  2978. Letters:Array[1..10,1..5] Of Char;
  2979.  
  2980. Accessing the elements of a multi-dimensional array is similar to that
  2981. for a uni-dimensional array. The table Letters may be managed in the
  2982. following manner:
  2983.  
  2984. Letters[3,4]:='V';
  2985. Letters[3][4]:='V';
  2986. Carac:=Letters[5,1];
  2987. Letters[1,1]:=Letters[10][5]; etc...
  2988.  
  2989.  
  2990. 6.3.4 The Record(Structured) type
  2991.  
  2992. It is possible to regroup data of different types within one structure.
  2993. A Record is a structure with a fixed number of elements. As opposed to
  2994. tables, its elements do not have to be of the same type.
  2995.  
  2996.  
  2997. Page  92
  2998.  
  2999. Example:
  3000.  
  3001.         Type Server = Record
  3002.              Parity : Char;
  3003.              Size   : Integer;
  3004.              Speed  : Integer;
  3005.         End;
  3006.  
  3007.         Var Bbs : Server;
  3008.  
  3009.         Bbs can then be initialized as follows:
  3010.  
  3011.         Bbs.Parity:='P';
  3012.         Bbs.Size  :=7;
  3013.         Bbs.Speed :=75;
  3014.  
  3015. As for tables, the keyword Packed may be used but produces no effect.
  3016.  
  3017.  
  3018. 6.3.5 Type Compatibility
  3019.  
  3020. TWinPas is like PASCAL, a language where the data type is very
  3021. important. Two types are compatible if:
  3022.  
  3023. * they are identical.
  3024. * one is a subset of the other
  3025. * the two are subsets of a third
  3026.  
  3027.  
  3028. Page  93
  3029.  
  3030. 6.3.6 Assignment Compatibility
  3031.  
  3032. The value of an expression Expv of type Expt is compatible with a
  3033. variable, a parameter, or an function identifier of type Fcti if:
  3034.  
  3035.         *FctI and Expt are of the same type and if neither is a
  3036.          structured type
  3037.         *Fcti and Expt or Ordinal types and Expv is in the value
  3038.          interval possible for Fcti.
  3039.  
  3040.  
  3041. 6.4 Instructions
  3042.  
  3043. The Instruction part of a program defines the actions to be performed in
  3044. a sequential manner.
  3045.  
  3046. The Instructions part of a TWinPas program are deliminated by:
  3047.         Begin
  3048.         ...(* Instructions*)
  3049.         End;
  3050.  
  3051.  
  3052. 6.4.1 Assignment Instructions (':=')
  3053.  
  3054. The assignment instruction is used to give a particular value to a
  3055. variable.
  3056.  
  3057. Variable;=expression;
  3058.  
  3059.  
  3060. Page  94
  3061.  
  3062. 6.4.1.1 Expressions
  3063.  
  3064. An expression is composed of constant or variable operands, operators,
  3065. and function calls. (Functions are described in 6...). An expression is
  3066. a rule for calculating a value where the rules of operator precedence
  3067. and arithmetic evaluation (from left to right) are applied. The priority
  3068. of operators is given here in increasing order. Operators with the same
  3069. priority are on the same line:
  3070.  
  3071. =         <>        <         >         <=        >=
  3072. +         -         Or
  3073. */        Div       Mod       And
  3074. Not
  3075.  
  3076. An expression between parentheses is evaluated in a manner independent
  3077. of the preceeding and following operators.
  3078.  
  3079. Examples:
  3080.  
  3081.         2*8+4*2         =(2*8)+(4*2)    =24
  3082.         Not a And b     =(Not a) And b
  3083.         4*8/2           =(4*8)/2        =16
  3084.         6+8 Div 4       =^+(8 Div 4)    =8
  3085.  
  3086. An assignment can be made on any variable of any type. But, the type of
  3087. the variable and the type of the expression should be compatible.
  3088.  
  3089. Examples:
  3090.  
  3091.         A:=3+4*8;
  3092.         Charac:=3; (* is illegal if Charac is of type Char *)
  3093.  
  3094.  
  3095. Page  95
  3096.  
  3097. 6.4.2 Instruction Block
  3098.  
  3099. An instruction block is a sequence of instructions executed in the order
  3100. in which they are written. The sequence is delimited by the words Begin
  3101. and End. The instruction part of a program is an Instruction Block.
  3102.  
  3103. Example:
  3104.         Begin
  3105.                 A:=3;
  3106.                 B:=5;
  3107.                 C:=A+B;
  3108.         End
  3109.  
  3110. Note: It isn't necessary to put a semicolon after the instruction which
  3111. preceeds the End statement because a semicolon is an instruction
  3112. separator and not part of the instruction itself.
  3113.  
  3114.  
  3115. 6.4.3 Iterative Instructions
  3116.  
  3117. Iterative instructions are among the most important of a language. They
  3118. allow for the repetitive execution of a group of instructions (Block)
  3119. until an end condition is satisfied which interrupts the process.
  3120.  
  3121.  
  3122. 6.4.3.1 While Instruction
  3123.  
  3124. While expression Do instruction
  3125.  
  3126. The type of the expression should be Boolean. The expression is first
  3127. evaluated, then, if the result is True, the instruction executed.
  3128. This process is repeated until the expression becomes False. In this
  3129. case, the expression is not executed.
  3130.  
  3131.  
  3132. Page  96
  3133.  
  3134. Example:
  3135.  
  3136.         While x<y Do x:f(x)+1;
  3137.  
  3138.         While (a<>'') And (Counter<>10) Do
  3139.         Begin
  3140.                 Read(a);
  3141.                 Counter:=Counter+1;
  3142.         End;
  3143.  
  3144. If the expression is initially false, the instruction or the block is
  3145. never executed.
  3146.  
  3147.  
  3148. 6.4.3.2 Repeat Instruction
  3149.  
  3150. Repeat instructions Until expression
  3151.  
  3152. The Repeat instruction is similar in effect to the While instruction,
  3153. but the instructions are executed before the calculation of the control
  3154. expression.  The type of this expression is again Boolean. The
  3155. instructions are repeated until the expression becomes true. As the
  3156. instructions are executed first, they are therefore executed at least
  3157. one time.
  3158.  
  3159. Examples:
  3160.  
  3161.         Repeat a:=f(a)+1 until a>b;
  3162.  
  3163.         Repeat
  3164.                 Count:=Count+1;
  3165.                 Read(c)
  3166.         Until c='';
  3167.  
  3168.  
  3169. Page  97
  3170.  
  3171. 6.4.3.3 For Instruction
  3172.  
  3173. For variable := initial expression Do/DownTo final expression Do
  3174. instructions
  3175.  
  3176. The variable type should be ordinal and the expressions of the same type
  3177. as the variable. The variable should be declared in the deepest nested
  3178. block containing the loop.
  3179.  
  3180. At the beginning of the For instruction, an ititial value is
  3181. assigned to the control variable. At each iteration, the value of this
  3182. variable is incremented (or decremented in the case of DownTo) until its
  3183. value is higher ( or lower ) than the value of the final expression. The
  3184. initial and final expressions are evaluated only once at the beginning
  3185. of the loop.
  3186. If the final expression is less than the initial expression (or greater
  3187. than in the case of DownTo), the instruction block is not executed at
  3188. all. At the end of the loop, the control variable is undefined, and no
  3189. assumption of its value may be made.
  3190. No test on the assignment of the control variable's value is made in
  3191. the loop, moreover such a test is not advised.
  3192.  
  3193. Examples:
  3194.  
  3195.         For i:=1 To Do Write(i*i);
  3196.  
  3197.         For day:=Monday To Friday Do
  3198.         Begin
  3199.                 ReadLn(HoursWorked);
  3200.                 TotalHours:=TotalHours+HoursWorked
  3201.         End
  3202.  
  3203.         For x: Max DownTo Min Do ReadLn(a[x]);
  3204.  
  3205.  
  3206. Page  98
  3207.  
  3208. 6.4.4 Conditional Instructions
  3209.  
  3210. It is often necessary to make the execution of an instruction or a block
  3211. of instructions dependent upon a condition. Several possibilities are
  3212. offered to this end, the If instruction and the Case instruction.
  3213.  
  3214.  
  3215. 6.4.4.1 The If Instruction
  3216.  
  3217. This instruction can be used in two different ways:
  3218.  
  3219.         a) If expression Then Instruction
  3220.         b) If expression Then Instruction1 Else Instruction2
  3221.  
  3222. In both cases the expression type is Boolean. If the value of the
  3223. expression is True, the instruction following Then is executed. If the
  3224. expression is evaluated as False in case (a) the execution goes on to
  3225. the instruction following the If and in case (b) to the instruction
  3226. following the Else.
  3227.  
  3228. Examples:
  3229.  
  3230.         If a<b Then a:=b;
  3231.  
  3232.         If x+y=z Then
  3233.         Begin
  3234.                 x:=0;
  3235.                 y:=0;
  3236.         End
  3237.         Else
  3238.                 z:=0;
  3239.  
  3240.  
  3241. Page  99
  3242.  
  3243. An If instruction bracketed in the form:
  3244.  
  3245.         If expression1 Then If expression2 Then Stat1 Else Stat2
  3246.  
  3247. can be difficult to understand. In TWinPas, it could be written:
  3248.  
  3249.         If Expression1 Then
  3250.         Begin
  3251.                 If Expression2 Then
  3252.                         Instruction1
  3253.                 Else
  3254.                         Instruction2
  3255.  
  3256.         End;
  3257.  
  3258. An Else is associated with the closest If. There is never a semicolon
  3259. before an Else, and a semicolon placed after a Then indicates the null
  3260. instruction.
  3261.  
  3262.  
  3263. 6.4.4.2 The Case Instruction
  3264.  
  3265. The Case instruction is composed of an expression (the selector) and of
  3266. a list of constant arguments of the same type as the selector which
  3267. should be an ordinal.
  3268.  
  3269.         Case expression Of
  3270.                 Label1:expression
  3271.                 .
  3272.                 .
  3273.                 .
  3274.         End
  3275.  
  3276. The instruction selected is that whose argument is equal to the current
  3277. value of the selector. If no value corresponds to that of the selector,
  3278. an error message is generated...
  3279.  
  3280.  
  3281. Page 100
  3282.  
  3283. Examples:
  3284.  
  3285.         Case i Of
  3286.                 0:x=:0;
  3287.                 1:x:=i;
  3288.                 2:x:=i*i;
  3289.                 3:x:=i*i*i;
  3290.                 4:x:=i*i*i*i;
  3291.         End;
  3292.  
  3293.         Case Carac Of
  3294.                 If, cr:newline:=True;
  3295.                 'a','b','c','d':letter:=True;
  3296.                 '0','1','2','3':digit :=True;
  3297.         End;
  3298.  
  3299. The selection arguments in a Case statement should be unique and should
  3300. only appear one time in the instruction.
  3301.  
  3302.  
  3303. 6.5 Procedures and Instructions
  3304.  
  3305. TWinPas, like most developed languages, allows one to define a group of
  3306. actions as a procedure to which a name, called the procedure identifier,
  3307. is given. The procedure is activated by a procedure instruction which
  3308. begins the execution of the group of instructions defined in the body of
  3309. the procedure.
  3310.  
  3311. The use of procedures allows the partitioning of a program into small
  3312. pieces, corresponding to small tasks to be performed, determined at the
  3313. time of the construction of the program. The program is then easier to
  3314. reread and to maintain. Procedures also allow you to define one time
  3315. only a module of code which can be called from several places in the
  3316. program, which reduces input and economizes memory usage.
  3317.  
  3318.  
  3319. Page 101
  3320.  
  3321. In section 6.2 we have said that a block was composed of a declarative
  3322. header and of a body which is itself composed of instructions and that
  3323. in the declarative part the procedures or functions are also defined.
  3324.  
  3325. Functions will be discussed in section 6.5.2.
  3326.  
  3327.  
  3328. 6.5.1 Procedures
  3329.  
  3330. The header of a procedure is composed of the word Procedure followed by
  3331. a name identifying the procedure and of a list of optional parameters.
  3332. The parameters will be explained further on in this chapter. After the
  3333. header we find the block. A block, as we have described for the program
  3334. block, is composed of a declarative part and a part of instructions. All
  3335. the variables declared in the block of a procedure are local to the
  3336. procedure and are not accessible outside of it. Since the declarative
  3337. part of a procedure can also contain procedure declarations, the range
  3338. of a procedure identifier is identical to that of any other variable
  3339. identifier.
  3340.  
  3341. A procedure is activated by a procedure instruction which is composed of
  3342. the name of the procedure and a parameter list, if there is one.
  3343.  
  3344. Example:
  3345.  
  3346.         Procedure ReadWrite;
  3347.         Const LongName = 30;
  3348.         Var i : Integer;
  3349.  
  3350.         Begin
  3351.                 For i:=1 To LongName Do
  3352.                 Begin
  3353.                         Read(Carac);
  3354.                         Write(Carac);
  3355.                 End;
  3356.         End;
  3357.  
  3358.  
  3359. Page 102
  3360.  
  3361. To activate this procedure, we could write:
  3362.  
  3363. ReadWrite;
  3364.  
  3365. 6.5.1.1 Parameters
  3366.  
  3367. It is often necessary to define new variables to represent procedure
  3368. arguments and results. These variables are called parameters and are
  3369. defined in the header by a dummy parameter list. This list indicates
  3370. the name of each parameter followed by its type. When a procedure having
  3371. parameters is called, the instruction to execute the procedure should
  3372. specify the name of the procedure as well as the corresponding parameter
  3373. list. The class of each parameter depends on that of the dummy parameter
  3374. in the procedure definition. In TWin Step, there are two types of
  3375. parameters, parameters passed by value and parameters passed by
  3376. address.
  3377.  
  3378. Parameters passed by value can be considered as entry characters,
  3379. because their sole role is to give initial values to the instructions of
  3380. the procedure. The parameter may be an arbitrary expression which is
  3381. assigned in a manner compatible with the dummy parameter. When a
  3382. procedure is called with its parameters set by value, the values are
  3383. assigned to the dummy
  3384. parameters and even if the value of the dummy parameter changes during
  3385. the execution of the procedure, the change has no effect on the original
  3386. parameter.
  3387.  
  3388. Parameters passed by their address are used when the value of the
  3389. parameter must be changed in the procedure and saved outside of it. Each
  3390. parameter should be a variable of the same type as that of the
  3391. corresponding dummy list. A parameter passed by address is characterized
  3392. in the dummy list by being preceeded by the word Var.
  3393.  
  3394.  
  3395. Page 103
  3396.  
  3397. When the dummy parameter list is written, the following rules must be
  3398. obeyed:
  3399.  
  3400.         a) The number of parameters in the two lists should be
  3401.            identical.
  3402.  
  3403.         b) Each passed parameter should correspond to the dummy
  3404.            parameter occupying the same place in the dummy list of the
  3405.            procedure.
  3406.  
  3407.         c) The parameters must obey the rules described below for
  3408.            parameters passed by value and by address.
  3409.  
  3410. Examples:
  3411.  
  3412. Procedure Max(Var m:Integer;x,y:Integer);
  3413. Begin
  3414.         If x>y Then m:=x
  3415.         Else m:=y;
  3416. End;
  3417.  
  3418. (* The calls following the procedure Max are legal *)
  3419.  
  3420. Max(Table[a],8,16);
  3421. Max(MaxVal,8*3,12-6);
  3422. Max(UpperPtr,a,b);      (* a and b are Integers *)
  3423.  
  3424.  
  3425. (* The calls following the procedure Max are illegal *)
  3426.  
  3427. Max(8,16,20);           (* the 1st parameter should be a variable *)
  3428. Max(MaxVal,8,'v');      (* the third parameter is not of the correct
  3429.                            type *)
  3430.  
  3431. A procedure may call itself, or call a second procedure which in turn
  3432. calls it. This type of procedure is recursive.
  3433.  
  3434. Page 104
  3435.  
  3436. 6.5.1.2 Late Declarations
  3437.  
  3438. In TWinPas, procedures and functions must have been defined before
  3439. there name can be used. The keyword Forward doesn't exist in TWinPas.
  3440.  
  3441.  
  3442. 6.5.2 Functions
  3443.  
  3444. A function is a particular type of procedure which describes a
  3445. calculation and which produces a single vale as a result. The result
  3446. should be a scalar. While a procedure is called via a procedure
  3447. instruction, a function is activated when its name is used in an
  3448. expression; the result of the function returns the final value to the
  3449. expression.
  3450.  
  3451. A function declaration is similar to a procedure declaration, but it is
  3452. necessary to specify the type of the result after the list of dummy
  3453. parameters.
  3454.  
  3455. Example:
  3456.  
  3457.         Function Max(x,y:Integer) : Integer;
  3458.  
  3459. The function identifier is used in the body of the function to record
  3460. the result of the calculation. In the body of the function one must
  3461. at least assign a value, of the defined type, to the function
  3462. identifier. If this does not occur, the result of the function
  3463. will be indeterminate.
  3464.  
  3465.  
  3466. Page 105
  3467.  
  3468. Example:
  3469.  
  3470.         Function Max(x,y:Integer):Integer;
  3471.         Begin
  3472.                 If x>y Then Max := Else Max :=y
  3473.         End;
  3474.  
  3475. The body of the function, like that of a procedure, is a block and can
  3476. also contain other variable, procedure, and function declarations. The
  3477. transmission of parameters is managed according to the same rules as
  3478. those for procedures.
  3479.  
  3480. Even though in the body of a function its identifier is equivalenced to
  3481. a variable, any other attempt to use the function identifier as an
  3482. ordinary variable will result in a recursive call to said function.
  3483.  
  3484. If the function modifies the contents of a variable external to the
  3485. function, we have what is called a side effect. You should pay close
  3486. attention to side effects. Indeed, if a function Fct(x) modifies a
  3487. variable a, the result Fct(x)+a will be different than a+Fct(x), which
  3488. should not be allowed to happen...
  3489.  
  3490.  
  3491. 6.6 Input Output
  3492.  
  3493. All programs use data and we must be able to furnish data to this
  3494. program by one means or another. In TWinPas, data may come from the
  3495. keyboard or from the communication line.
  3496.  
  3497.  
  3498. Page 106
  3499.  
  3500. 6.6.1 Keyboard Input (Read)
  3501.  
  3502. The Read command is used in the following manner:
  3503.  
  3504.         Read(variable_1,variable_2,...variable_n);
  3505.  
  3506. These variables should be of either type Integer or Char (character).
  3507. The effect of the Read command is to assign to each of the variables
  3508. of the list, a value read from the input stream (the keyboard).
  3509. If the variable type is Integer, a character sequence representing an
  3510. integer is read. Leading blanks and trailing characters
  3511. are ignored. All numbers read should be separated by spaces
  3512. or by trailing characters. If the variable type is character, the
  3513. character following the input stream is read and assigned to this
  3514. variable. If this character is the end of line marker, the standard
  3515. function Eoln(Input) becomes true. The keyword Input is optional. It
  3516. signifies that one is using the standard input mode.
  3517.  
  3518. A variant of the Read procedure allows one to ignore the end of the
  3519. input line. This instruction is:
  3520.  
  3521.         ReadLn;
  3522.  
  3523. ReadLn can also read several parameters.
  3524.  
  3525.         Read(v1,v2,v3);         (* is equivalent to *)
  3526.         Read(v1);Read(v2);Read(v3);
  3527.  
  3528. and
  3529.  
  3530.         Read(v1,v2,v3); ReadLn; (* is equivalent to *)
  3531.         ReadLn(v1,v2,v3);
  3532.  
  3533. It is only after the aquisition of the parameters that the remainder of
  3534. the input line is destroyed.
  3535.  
  3536.  
  3537. Page 107
  3538.  
  3539. Example:
  3540.  
  3541.         Read(Integer1,Integer2,Charac1,Charac2);
  3542.  
  3543.         with the following line of input:
  3544.  
  3545.         1245            -143a   158     <CR>
  3546.  
  3547.         is equivalent to:
  3548.  
  3549.         Integer1:=1245; Integer2:=-143;Charac1:='a';Charac2:='1';
  3550.  
  3551.         We would have obtained the same result with the following input
  3552.         lines:
  3553.  
  3554.         1245    <CR>
  3555.         -143    <CR>
  3556.         a158    <CR>
  3557.  
  3558. The final 58 of the input line is not lost as yet; it will be
  3559. read with the next Read. ReadLn on the other hand would have removed all
  3560. the end of the line after its execution and the 58 would have
  3561. disappeared.
  3562.  
  3563.  
  3564. 6.6.2 Screen Output (Write)
  3565.  
  3566.  
  3567. he rite command is used in the following manner:
  3568.  
  3569.         Write(variable_1,variable_2,...,variable_n);
  3570.  
  3571. The WriteLn command generates a line feed after its execution. In
  3572. TWinPas, the parameters may be integers, characters, or constant
  3573. character strings.
  3574.  
  3575.  
  3576. Page 108
  3577.  
  3578. Examples:
  3579.  
  3580.         Write('FiveThousandThreeHundrenTwenty = ',5320);
  3581.  
  3582.         will display            FiveThousandThreeHundredTwenty = 5320
  3583.  
  3584.         WriteLn('FirstPhase');
  3585.         Write('A Word");
  3586.         Write('WhichMeansNothing');
  3587.  
  3588.         will display            FirstPhrase
  3589.                                 A WordWhichMeansNothing
  3590.  
  3591.         It is also possible to format the display by specifying the size
  3592.         of the print field.
  3593.  
  3594.         Write(12345:10);
  3595.  
  3596.         will display    12345 right oriented in a field of 10 characters
  3597.  
  3598.  
  3599. 6.7 TWinTalk Procedures
  3600.  
  3601. You may refer to the SuptelPro program at the end of the chapter to
  3602. better understand the use of the procedures and functions specific to
  3603. TWinPas.
  3604.  
  3605. Cls Procedure;
  3606.         Erase the screen of the execution window and return the
  3607.         typing prompt to its upper left corner.
  3608.  
  3609. Hide Procedure;
  3610.         Hides the execution window. The window is hidden by default.
  3611.  
  3612.  
  3613. Page 109
  3614.  
  3615. Show Procedure;
  3616.         Show the execution window. It is sometimes useful to display the
  3617.         execution window. Show is thus often the first instruction of a
  3618.         program.
  3619.  
  3620. Text Procedure;
  3621.         Signals TWinTalk that the scrapbook will be managed in Text
  3622.         mode.
  3623.  
  3624. Graphic Procedure;
  3625.         Signals TWinTalk that the scrapbook will be managed in Graphics
  3626.         mode.
  3627.  
  3628. Config('FileName') Procedure;
  3629.         This procedure allows you to configure TWinTalk based on the
  3630.         contents of a configuration file whose name one has specified as
  3631.         a parameter.
  3632.  
  3633. Connect Procedure;
  3634.         Open the RS232 serial line. Calling this procedure is mandatory
  3635.         before dialing a number or sending a file...The serial line is
  3636.         no longer available to other applications.
  3637.  
  3638. Disconnect Procedure;
  3639.         Close the serial line to TWinTalk. It is again free for other
  3640.         applications.
  3641.  
  3642. Dial ('telephone number') Procedure;
  3643.         Dial the phone number whose digits are given as a parameter.
  3644.  
  3645. Send (parameter list:Integer, Char, or Constant Array) Procedure;
  3646.         Send the given parameters on the line. The syntax is identical
  3647.         to that for Write.
  3648.  
  3649. Wait Procedure (Seconds:Integer);
  3650.         Wait a number of seconds. This procedure permits a pause in the
  3651.         running of a TWinPas program.
  3652.  
  3653.  
  3654. Page 110
  3655.  
  3656. Capture ('File Name',Source:Integer) Procedure;
  3657.         Allows you to capture all the characters which pass on the
  3658.         communication line in a file. After the capture, the resulting
  3659.         file can be locally reviewed when desired...The source parameter
  3660.         can be either Line or Screen which are two predefined constants.
  3661.         In the case of Screen capture, when one calls the Copy
  3662.         procedure, you may copy the contents of the screen to the
  3663.         capture file.
  3664.  
  3665. Copy Procedure;
  3666.         Transfers the contents of the screen to the current capture
  3667.         file. The screen capture allows you to obtain the screen raster
  3668.         in pure ASCII without control characters specific to a given
  3669.         emulation.
  3670.  
  3671. StopCapture Procedure;
  3672.         Stops the current capture and closes the file.
  3673.  
  3674. InitTake ('Character String') Procedure;
  3675.         Initializes the character string that TWinTalk must search for
  3676.         line by line. See the function Take.
  3677.  
  3678. Exit (code:Integer) Procedure;
  3679.         Allows you to interrupt the running of a TWinTalk program. This
  3680.         procedure should be used in case of error. If the parameter is
  3681.         0, the program stops and the execution window remains on
  3682.         the screen. If the parameter is different than 0, the execution
  3683.         window is closed. This last possibility is above all used to
  3684.         automatically close the window at the end of execution.
  3685.  
  3686. Transfer ('File Name') Procedure;
  3687.         Begin the transfer of a given file using the current protocol.
  3688.         The TWinPas program pauses until the end of the transfer.
  3689.  
  3690.  
  3691. Page 111
  3692.  
  3693. 6.8 TWinTalk Functions.
  3694.  
  3695. Find('TargetString',abscissa,ordinate:Integer):Boolean;
  3696.         Search for a given character string at a given screen position.
  3697.         The result is true if the string is found, and otherwise false.
  3698.  
  3699. Connected:Boolean;
  3700.         This function is true when the connection carrier signal is
  3701.         detected and is otherwise false.
  3702.  
  3703. Taken:Boolean;
  3704.         This function is true if the character string supplied by the
  3705.         last InitTake had been found on the line, otherwise it is false.
  3706.  
  3707.  
  3708. 6.9 TWinTalk constants
  3709.  
  3710. To preserve compatibility between emulations, TWinPas recognizes
  3711. several constants which characterize certain keyboard keys. It is
  3712. therefore entirely recommanded to use Return rather than Chr(13) or the
  3713. Videotex sequence corresponding to SEND, Escape rather than Chr(27).
  3714.  
  3715.         Escape,                         Escape
  3716.         Reurn,                          Return Carriage
  3717.         Home,                           Home
  3718.         End,                            End
  3719.         Tab,                            Tab
  3720.         Help,                           Help
  3721.         Left,Right,Up,Down,             cursor
  3722.         Delete,                         Del
  3723.         Back,                           BackSpace
  3724.         Prior,Next,                     PgUP,PgDn
  3725.         Add,Subtract,Decimal,Multiply,  +,-,. and * of the numeric
  3726.                                           keypad
  3727.         F1 to F16,                      Function Keys
  3728.         Num0 to Num9.                   digits on the numeric keypad
  3729.  
  3730.  
  3731. Page 112
  3732.  
  3733. 6.10 Compilation Error Messages
  3734.  
  3735. When you execute a TWinPas program, TWinTalk will first read the file
  3736. to be executed, then analyze its contents to verify the syntax and
  3737. validity. If an error is detected, a small hat '^' is first placed under
  3738. the guilty symbol or expression. Then, one or more error messages are
  3739. also written at the end of the line. Finally, a summary of the different
  3740. errors is added to the end of the list with the number and the label of
  3741. the error.
  3742.  
  3743. Here is a complete list of the errors which can be detected.
  3744.  
  3745.         0       "undef id",     Undefined identifier.
  3746.         1       "multi def",    Identifier defined more than once in the
  3747.                                 same call.
  3748.         2       "identifier",   An identifier is missing.
  3749.         3       "program",      Each program must begin with Program
  3750.         4       ")",            A right parenthesis is missing.
  3751.         5       ":"'            A colon is missing.
  3752.         6       "syntax",       Syntax error.
  3753.         7       "ident,var",    Error in the list of dummy parameters.
  3754.         8       "Of",           The symbol Of is missing.
  3755.         9       "(",            An left parenthesis is missing.
  3756.         10      "id,array",     A type must begin with an identifier,
  3757.                                 the symbol Array, or the symbol Record.
  3758.         11      "[",            A left bracket is missing.
  3759.         12      "]",            A right bracket is missing.
  3760.         13      ".."'           The symbol ".." is missing.
  3761.         14      ";",            A semicolon is missing.
  3762.         15      "func.type",    The result of a function must be of the
  3763.                                 type Integer, Char, or Boolean.
  3764.         16      "=",            An equal sign is missing. The symbol
  3765.                                 ":=" is used for assignment statements
  3766.                                 and not for declarations.
  3767.         17      "boolean",      The expression following the symbols If,
  3768.                                 While, and Until must be Boolean.
  3769.  
  3770.  
  3771. Page 113
  3772.  
  3773.         18      "convar type",  The control variable after For must be
  3774.                                 of the type Integer, Char, or Boolean.
  3775.         19      "type",         The expressions which fix the values at
  3776.                                 the beginning and at the end of a For
  3777.                                 loop should be the same type as the
  3778.                                 control variable.
  3779.         20      "prog.param",   The Output parameter should be present
  3780.                                 in the program header.
  3781.         21      "too big",      The number is too big.
  3782.         22      ".",            A period is missing after the last End.
  3783.         23      "type(case)",   The Case selector should be of the type
  3784.                                 Integer, Char, or Boolean. If Boolean,
  3785.                                 an If instruction is recommanded
  3786.                                 instead.
  3787.         24      "const id",     This character is not authorized here.
  3788.         25      "const id",     In the definition of a constant, the
  3789.                                 equal sign "=" must be followed by a
  3790.                                 constant. If an identifier is used, it
  3791.                                 must also represent a constant.
  3792.         26      "index type",   The type of an index must be the same as
  3793.                                 that of the declaration.
  3794.         27      "index bound",  In the declaration of a table, the lower
  3795.                                 limit must not be larger than the upper
  3796.                                 limit. The limits must stay within the
  3797.                                 allowed interval + to -32767 and their
  3798.                                 type must be the same.
  3799.         28      "no array",     Any indexed variable must be declared as
  3800.                                 an Array.
  3801.         29      "type id",      A type identifier is missing.
  3802.         30      "undef type",   This type is not defined; Recursive type
  3803.                                 definitions are not allowed.
  3804.         31      "no record",    Any variable having a field selector
  3805.                                 must be declared as a Record.
  3806.         32      "boole type",   The operators Not, And, and Or must be
  3807.                                 of the type Boolean.
  3808.         33      "arith type",   Illegal arithmetic expression.
  3809.         34      "integer",      The operands of Div and Mod are of
  3810.                                 Integer type.
  3811.         35      "types",        The operands are of incompatible types.
  3812.  
  3813.  
  3814. Page 114
  3815.  
  3816.         36      "param type",   The types of the actual parameters and
  3817.                                 the corresponding dummy parameters must
  3818.                                 be identical.
  3819.         37      "variable id",  A variable is missing.
  3820.         38      "string",       A string must contain at least one
  3821.                                 character.
  3822.         39      "no.of.params", The number of actual and dummy
  3823.                                 parameters must be the same.
  3824.         40      "type",         The Read parameters must be
  3825.                                 Integer or Char.
  3826.         41      "type",         The Write parameters must be Integer,
  3827.                                 Char, or constant string.
  3828.         42      "real type",    If the instruction is of the form
  3829.                                 Write(x:m:n); then the type of x must be
  3830.                                 Real.
  3831.         43      "integer",      If the expression is of the form
  3832.                                 Write(x:n); or Write(x:m:n) then the
  3833.                                 type of n must be Integer.
  3834.         44      "var,const",    No type nor procedure identifier can be
  3835.                                 part of an expression.
  3836.         45      "var,proc",     An instruction may not begin with a type
  3837.                                 or a function identifier. The only
  3838.                                 exception is the assignment of a result
  3839.                                 to a function. In this case, it must be
  3840.                                 a part of the function block.
  3841.         46      "types(:=)",    In an assignment x:=y, the types of the
  3842.                                 variable x and the expression y must be
  3843.                                 identical.
  3844.         47      "type(case)",   All the operands of a Case statement
  3845.                                 must be of the same type as the
  3846.                                 selector.
  3847.         48      "type",         The type of the indicated function
  3848.                                 argument is illegal.
  3849.         49      "store overflow",The program is too large.
  3850.         50      "constant",     A constant may not begin with the
  3851.                                 indicated symbol.
  3852.         51      ":=",           The symbol ":=" is missing (no space
  3853.                                 between the ":" and the "=")
  3854.         52      "Then",         The symbol Then is missing.
  3855.         53      "Until",        The symbol Until is missing.
  3856.         54      "Do",           The symbol Do is missing.
  3857.  
  3858.  
  3859. Page 115
  3860.  
  3861.         55      "to downto",    The symbol To or DownTo is missing.
  3862.         56      "begin",        The symbol Begin is missing.
  3863.         57      "end",          The symbol End is missing.
  3864.         58      "factor",       A factor must begin with an identifier,
  3865.                                 a constant, the symbol Not, or an open
  3866.                                 parenthesis.
  3867.  
  3868.  
  3869. 6.11 Interpreter Error Messages
  3870.  
  3871.         "undefined case",       One of the operands of a Case statement
  3872.                                 has not been forseen.
  3873.         "division by 0",        The divisor of an expression is zero.
  3874.         "invalid index",        The index of a table is outside its
  3875.                                 limits.
  3876.         "stack overflow",       The TWinPas stack is full.
  3877.         "line too long",        The input line is too long.
  3878.         "aborted by user",      The user has closed the window before
  3879.                                 the end of the program.
  3880.         "file error",           File error.
  3881.         "undefined error",      Undefined error.
  3882.  
  3883. When one of these errors occurs, the program stops, the view window
  3884. reappears if it was hidden, and you may read the label of the error
  3885. message.
  3886.  
  3887.  
  3888. Page 116
  3889.  
  3890. Here is a real example of a TWinPas program used by the authors to make
  3891. a connection to a French BBS (Bulletin Board Service).
  3892.  
  3893.         {l-}                    (* Suppress compiler listing *)
  3894.         Program SuptelPro;
  3895.         Const MAXTIM = 30;      (* Constant definition *)
  3896.         Var Try:Integer;        (* Variable definitions *)
  3897.               n:Integer;
  3898.  
  3899.                 Procedure WaitFor;      (* String Wait Procedure *)
  3900.                 Var Times:Integer;      (* Procedure local variable *)
  3901.                 Begin
  3902.                         Times:=0;
  3903.  
  3904.                         Repeat
  3905.                                 Times:=Times+1  (* Loop counter *)
  3906.                                 Wait(1);        (* Wait 1 sec *)
  3907.                         Until Taken Or (Times>MAXTIM);
  3908.  
  3909.                         (* Test for error or found string *)
  3910.                         If Times>MAXTIM Then    (*If MAXTIM is reached*)
  3911.                         Begin                   (* It is an error *)
  3912.                                 WriteLn('String Not Found...');
  3913.                                 Exit;           (* Program Exit *)
  3914.                         End
  3915.                 End;
  3916.  
  3917.                 Procedure Suptel        (* Procedure for Suptel Pro *)
  3918.                 Begin
  3919.                         InitTake('change?');    (* Target string *)
  3920.                         WaitFor;                (* Wait for the string*)
  3921.                         Send(RETURN);           (* Send <CR> *)
  3922.  
  3923.                         Wait(1);                (* Wait 1 sec *)
  3924.                         Send(RETURN);           (* Send <CR> *)
  3925.  
  3926.  
  3927. Page 117
  3928.  
  3929.                         InitTake('name?');
  3930.                         WaitFor;
  3931.                         Send('Firstname Name Password',RETURN);
  3932.  
  3933.                         InitTake('yes?');
  3934.                         Waitfor;
  3935.                         Send('n',RETURN);
  3936.                 End;
  3937.  
  3938.                 Procedure Valley;       (* Procedure for Soft Valley *)
  3939.                 Begin
  3940.                         InitTake('=no?');
  3941.                         WaitFor;
  3942.                         Send(RETURN);
  3943.  
  3944.                         InitTake('name...?');
  3945.                         WaitFor;
  3946.  
  3947.                         Send('Firstname Name Password',RETURN);
  3948.                         InitTake('[NS]?');
  3949.                         WaitFor;
  3950.                         Send('n',RETURN,RETURN,RETURN);
  3951.                 End;
  3952.  
  3953.         Begin                           (* Beginning of program *)
  3954.                 Cls;                    (* Clear the screen *)
  3955.                 Show;                   (* Show the window *)
  3956.                 n:=99;                  (* Set n to a large value *)
  3957.  
  3958.                 WriteLn('BBS Servers');
  3959.                 WriteLn;
  3960.                 WriteLn('0) Quit');
  3961.                 WriteLn('1) Suptel Pro');       (* Display a menu *)
  3962.                 WriteLn('2) Suptel 2');
  3963.                 WriteLn('3) Soft Valley');
  3964.                 WriteLn('4) Suptel 3');
  3965.  
  3966.  
  3967. Page 118
  3968.  
  3969.                 While(n>4) Or (n<0) Do         (* Read the input line *)
  3970.                         ReadLn(n);
  3971.  
  3972.                 Hide;                           (* Hide the window *)
  3973.                 Connect;                        (* RS232 connection *)
  3974.  
  3975.                 (* The telephone numbers here are real, add "16,1" if
  3976.                 you are calling from outside the greater Parisien area*)
  3977.  
  3978.                 Case n Of
  3979.                         0: Exit(1);     (*If n is zero, complete exit*)
  3980.                         1: Dial('48991200');    (* Dial a number *)
  3981.                         2: Dial('48980300');    (* corresponding to *)
  3982.                         3: Dial('64931382');    (* the value of n *)
  3983.                         4: Dial('48994300');
  3984.                 End;
  3985.  
  3986.                 Try := 0;
  3987.                 Repeat                          (* After dialing *)
  3988.                         Try := Try + 1;         (* a number, wait for *)
  3989.                         Wait(1);                (* the carrier signal *)
  3990.                 Until Connected Or (Try>3);     (* for 3 seconds *)
  3991.  
  3992.                 If Try>3 Then                 (* If no carrier, error *)
  3993.                 Begin
  3994.                         WriteLn('No Carrier...');
  3995.                         Exit
  3996.                 End;
  3997.  
  3998.                 Case n Of
  3999.                         1,2,4:Suptel;   (*Choose the correct procedure*)
  4000.                         3: Valley;      (* based on the menu choice *)
  4001.                 End;
  4002.  
  4003.                 Exit(1);                (* Exit + Close the window *)
  4004.         End.
  4005.  
  4006.  
  4007. Page 119
  4008.  
  4009. Appendix: TWinTalk keyboard equivalents
  4010.  
  4011. The Windows environment in which TWinTalk functions makes great use of
  4012. the mouse. For users which to not have a pointing device, or to
  4013. accelerate certain commands, TWinTalk also offers a keyboard interface.
  4014.  
  4015.  
  4016. Menu Access.
  4017.  
  4018. In the standard Windows, access to the menus can be had by
  4019. simultaneously presing the ALT key and the key which represents the
  4020. underlined letter in the menu (Windows 2) or the first letter (Windows
  4021. 1).
  4022.  
  4023. For example, to read a file, simultaneously press ALT and F to open the
  4024. File menu, then ALT plus R to choose the command Read.
  4025.  
  4026. To get to the system menu use ALT and the space key.
  4027.  
  4028.  
  4029. TWinTalk Shortcuts.
  4030.  
  4031. In certain cases a command should be able to be called very rapidly. The
  4032. method described above may prove to be tedious. To remedy this, TWinTalk
  4033. offers you key combinations which diectly invoke the commands. To:
  4034.  
  4035. -       Call the Site_List, type        Shift and F3 simultaneously
  4036. -       Make a connection,              Shift and F4
  4037. -       Dial a number,                  Shift and F6
  4038. -       Disconnect,                     Shift and F5
  4039. -       Issue a 'Break',                Shift and F7
  4040. -       Change to Color mode            Shift and F8
  4041. -       Configure the V24 line          Shift and F9
  4042. -       Call the Help function          Shift and F10
  4043.  
  4044.  
  4045. Page 120
  4046.  
  4047. The edit commands to know are standard Windows commands:
  4048.  
  4049. -       Copy                            Shift and the Ins key
  4050. -       Paste                           Ctrl  and the Ins key
  4051.  
  4052.  
  4053. System functions.
  4054.  
  4055. -       To change from one TWinTalk window to another, for example from
  4056.         the file transfer window to the main emulation window, use ALT
  4057.         and F6
  4058.  
  4059. -       To Exit TWinTalk, use ALT and F4
  4060.  
  4061.  
  4062. Keys which displace the contents of a window
  4063.  
  4064. These keys act when the emulation window is too small to allow all the
  4065. emulated screen to be displayed.
  4066.  
  4067. -       To scroll the contents of the emulation window one line up use
  4068.         ALT and the DownArrow key.
  4069.  
  4070. -       To scroll the contents of the emulation window one line down use
  4071.         ALT and the UpArrow key.
  4072.  
  4073. -       To see the hidden righthand part of an emulation window use
  4074.         ALT and the RightArrow key.
  4075.  
  4076. -       To see the hidden lefthand part of an emulation window use
  4077.         ALT and the LeftArrow key.
  4078.  
  4079. -       To see the lower hidden part of the emulation window use
  4080.         ALT and PgDn.
  4081.  
  4082. -       To see the upper hidden part of the emulation window use
  4083.         ALT and PgUp.
  4084.  
  4085.  
  4086. Page 121
  4087.  
  4088.  
  4089. Area selection keys.
  4090.  
  4091. Even without a mouse it is possible to select an area of the
  4092. screen to copy, for example, data into the scrapbook.
  4093.  
  4094. -    Ctrl Arrows move the mouse pointer.
  4095. -    Ctrl Home returns the pointer to the upper left corner
  4096.      of the emulation window.
  4097. -    Ctrl End brings the pointer to the lower right corner of
  4098.      the emulation window.
  4099. -    Ctrl Space acts like the left button of the mouse.
  4100.  
  4101. To select an area, bring the pointer of the mouse to the
  4102. upper left corner of the area using the Ctrl Arrows, then
  4103. simultaneously press Ctrl and Space, and while keeping the
  4104. keys depressed, move the pointer to the lower right corner of
  4105. the area with the arrows.
  4106.  
  4107.  
  4108. Keys for various emulations.
  4109.  
  4110. For the VT102 and Ansi emulations, the correspondance is as
  4111. follows:
  4112.  
  4113.      VT102               PC
  4114.  
  4115.      PF1 to PF4 keys     F1 to F4 keys.
  4116.  
  4117.      VT102 keypad        Keys 0 to 9 on the numeric keypad of
  4118.                          a 102 key keyboard or if Numlock is
  4119.                          is set on a 96 key keyboard.
  4120.  
  4121.      Keypad .(period)    Key . on the numeric keyboard of a
  4122.                          102 key keyboard or if Numlock is
  4123.                          set on a 96 key keyboard.
  4124.  
  4125.      Keypad - (minus)    - (minus) key
  4126.      Keypad , (comma)    + (plus) key
  4127.      Keypad Enter        * key or Shift+Return
  4128.      Del                 <-- key
  4129.      Back Space (BS)     Shift + <-- key
  4130.      ESC                 ESC
  4131.      Directional arrows  Identical
  4132.      TAB                 TAB
  4133.      Ctrl                Ctrl
  4134.      Return              Return
  4135.  
  4136. Note: this key configuration is not applied unless the
  4137. keyboard configured box is not checked in the Setup BT/ANSI
  4138. dialog area. If the box is checked, the keys defined by the
  4139. user will be used instead.
  4140.  
  4141.  
  4142.  
  4143.  
  4144.  
  4145.  
  4146.  
  4147.        (Preliminary release for TWinTalk 2.0 - USA Demo version)
  4148.  
  4149.  
  4150.                             end of document
  4151.  
  4152.  
  4153.  
  4154.  
  4155.  
  4156.  
  4157.  
  4158.